建模可空的外键实体框架

时间:2013-08-13 01:51:06

标签: c# sql entity-framework database-design entity-framework-designer

采用以下伪代码数据库

table Foo
{
    FooID int not null,
    name varchar not null
}

table Bar
{
    BarID int not null,
    name varchar not null
}

table Waa
{
    WaaID int not null,
    name varchar not null
}

table Link
{
    LinkID int not null,
    FooID int null,
    BarID int null,
    WaaID int null,
    Description varchar not null
}

Link表的目的是允许我在一个表中将实体链接在一起,而不需要多个Foo_Bar_LinkFoo_Waa_Link等表。

我在EntityFramework v5中修改了这个数据库。因此,我希望能够指定FooLink之间的一对多关系,以便我可以获得与给定Foo关联的所有链接。

问题
EntityFramework Designer仅允许外键不为空的一对多关系。我希望Foo有一个导航属性Associations,它可以获得AssociationFooID = Foo.FooID个实体。请注意,我正在使用Designer。

1 个答案:

答案 0 :(得分:3)

EF并非旨在支持像您这样的特殊型号。我知道的唯一方法是插入“空”意思行,例如id等于-1。在商业逻辑或DTO中实现“聪明”的getter和setter。