如何将实体框架类属性标记为'过时'

时间:2015-12-14 14:55:31

标签: c# entity-framework

我在Entity Framework实体中有一些字段,我想将其标记为[已废弃]。有可能吗?

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

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中使用EF6和C#4.5。)

1 个答案:

答案 0 :(得分:0)

您可以添加一个成员标记为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; }
    }
}