如何将Entity Framework类属性标记为';过时';

本文关键字:记为 过时 属性 Entity Framework | 更新日期: 2023-09-27 18:26:47

我在实体框架实体中有一些字段,我想将其标记为[Obsolete]。有可能吗?

我有以下自动创建的代码:

namespace Data.Databases
{
    using System;
    using System.Collections.Generic;
    public partial class Address
    {
        public long Id { get; set; }
        public string CompanyName { get; set; }
        public string Title { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string HouseNumber { get; set; }
    }
}

我尝试添加这样的元数据:

namespace Data.Databases 
{
    [MetadataType(typeof(AddressMetadata))]
    public partial class Address 
    {
    }
    public class AddressMetadata 
    {
        [Obsolete]
        public string Title { get; set; }
    }
}

但这行不通。它编译得还可以,但在VS.中并没有显示出过时的字段

是我做错了什么,还是根本不可能?

(我在VS2012中使用带有C#4.5的EF6。)

如何将Entity Framework类属性标记为';过时';

您可以添加一个将成员标记为Obsolete的接口。

namespace Data.Databases 
{
    [MetadataType(typeof(AddressMetadata))]
    public partial class Address : IAddress
    {
    }
    public class AddressMetadata 
    {
        public string Title { get; set; }
    }
    public interface IAddress
    {
        [Obsolete]
        public string Title { get; set; }
    }
}