cos*_*son 5 c# entity-framework
我正在使用实体框架.我有一个由EF生成的名为Company的部分类.部分类看起来像:
"BaseModels.Company"类型已包含"CompanyName"的定义"
public partial class Company {
    public string CompanyId { get; set; }
    public string CompanyName { get; set; }
}
我想要做的是从公司创建一个具有额外属性的派生类.
public class MyCompany : Company {
    public string UploadName { get; set; }
}
但我想用自定义属性修饰基本类型属性CompanyName.
我去了以下位置: 如何从子类添加属性到基类的字段?
这回答了我的问题.问题是如果我将基类中的CompanyName属性标记为"虚拟",那么EF可以重新生成将覆盖我的东西的代码.
我试图定义一个部分类,但VS 2013在我尝试添加时抱怨:
public partial class Company {
    [Renderer("html")]
    public virtual string CompanyName { get; set; }
}
通过声明属性名称已存在.
我怎么能绕过这个障碍?
您不能使用分部类定义已经存在的属性。您需要使用 MetadataTypeAttribute 在现有属性上添加属性。创建部分类:
[MetadataType(typeof(CompanyMetadata))]
public partial class Company { }
并将元数据类添加到您的项目中,并使用具有所需属性的属性:
public class CompanyMetadata
{
    [Renderer("html")]
    public string CompanyName { get; set; }
}