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

Ulr*_*ric 7 c# 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; }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

但这是行不通的。它编译正常,但在 VS 中并没有显示该字段已过时。

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

(我在 VS2012 中使用 EF6 和 C#4.5。)

Dan*_*ite 1

您可以添加一个将成员标记为 的接口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; }
    }
}
Run Code Online (Sandbox Code Playgroud)