【发布时间】:2014-06-18 13:00:53
【问题描述】:
我正在使用 EF 工具包从现有数据库创建我的 POCO 类。随着项目的进行,我将不得不多次生成此类。生成的类有一些问题,我不想每次生成代码时都必须纠正。
问题一:
当一个表有两个外键指向同一个表时,它不会生成好的属性名称。示例:
它生成:
public partial class Flow
{
public virtual Element Element { get; set; }
public virtual Element Element1 { get; set; }
}
当我想要的时候:
public partial class Flow
{
public virtual Element FromElement { get; set; }
public virtual Element ToElement { get; set; }
}
我通过使用这样的部分类解决了这个问题:
public partial class Flow
{
public virtual Element FromElement
{
get {return Element;}
set { Element = value; }
}
public virtual Element ToElement
{
get {return Element1;}
set {Element1=value;}
}
}
这样我就不必编辑生成的类了。
第二个问题:
它无法识别数据库上的自动增量 GUID 属性。它生成:
public partial class Process
{
public System.Guid ProcessId { get; set; }
}
什么时候应该生成:
public partial class Process
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public System.Guid ProcessId { get; set; }
}
问题是,我如何告诉 EF 这些列是自动增量的,而无需插入 “[DatabaseGenerated(DatabaseGeneratedOption.Identity)]”在生成的类的每个主键字段之前?
【问题讨论】:
标签: c# entity-framework code-generation t4