0

使用 MVC4,Entity Framework 5,我希望每种类型都使用一个接口,

所以我有我的接口,一个对另一个具有“导航”属性;

Ifoo 接口有:

IUser User {get; set;}
int UserID {get; set;}

假设 IUser 只有 UserID 和 UserName 属性。

在一个类型中实现 Ifoo 接口时,我使用

public Iuser User {get; set;}
public UserID {get; set;}

然后,使用 EF5,我渴望加载导航属性,使用实现 IUser 的用户类型:

db.Foo.where(x => x.id == id).Include(x => x.User)

但它告诉我:

指定的包含路径无效。EntityType 'Dal.Foo' 没有声明名为 'User' 的导航属性。

但是,如果我将两个接口都更改为直接实现类型,则效果很好。

有没有办法解决这个问题,所以我可以利用接口?

4

1 回答 1

0

我知道这可以使用部分类来完成。所以你可以使用部分类并忽略接口,或者只在部分类中实现接口然后继承它。我建议查看 T4 模板。

于 2013-10-11T06:19:21.097 回答