实体框架5 ASP.Net实现接口作为模型类型

时间:2013-01-11 13:06:29

标签: asp.net-mvc-4 entity-framework-5

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

所以我有我的接口,一个带有'navigation'属性的接口;

接口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'的导航属性。

但是,如果我更改两个接口以直接实现该类型,它可以正常工作。

有没有解决方法,所以我可以使用接口?

1 个答案:

答案 0 :(得分:0)

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