Phi*_*ton 6 entity-framework code-first
我试图从现有数据库生成实体框架代码第一模型(不更改数据库模式).此数据库过去曾用于生成edmx模型,我正在尝试使用Fluent Api或数据注释来实现等效模型.
我无法重现的关系是0..1到很多使用连接表(不是可以为空的外键).
所以它看起来像这样:
TableA
{
ID (PrimaryKey)
TableB (0 or 1)
}
JoinTable
{
TableA_FK (PrimaryKey, ForeignKey),
TableB_FK (ForeignKey)
}
TableB
{
ID (PrimaryKey)
TableAs (Many)
}
Run Code Online (Sandbox Code Playgroud)
这是否可以在代码第一种风格中实现,或者我是否必须生成edmx模型才能在EF中使用此数据库而不更改其模式?
非常感谢,菲尔
如果我理解正确,以下仅使用数据注释的代码应该创建您的模型。
public class TableA
{
public int ID { get; set; }
public JoinTable JoinTable { get; set; }
}
public class TableB
{
public int ID { get; set; }
public List<JoinTable> JoinTables{ get; set; }
}
public class JoinTable
{
[Key, ForeignKey("TableA")]
public int TableA_FK { get; set; }
[ForeignKey("TableB")]
public int TableB_FK { get; set; }
public TableA TableA { get; set; }
public TableB TableB { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,EF 不会执行返回原始的往返,如果您从该代码创建的数据库模型生成代码优先模型,那么 EF 会简化模型并删除联接表并创建可为空的外键。
让我知道这个是否奏效。
| 归档时间: |
|
| 查看次数: |
733 次 |
| 最近记录: |