假设我有以下课程:
public class User
{
public int UserId { get;set;}
public string Firstname { get;set;}
public Interests Interests { get;set;}
}
public class Interests
{
public IList<Team> FavoriteTeams { get;set;}
public IList<Food> FavoriteFoods { get;set;}
}
public class Team{
public int TeamId { get;set;}
public string City {get;set;}
public string Name { get;;set;}
}
public class Food{
public int FoodId { get;set;}
public string FoodName { get;set;}
}
在数据库级别,我想有以下表格:
用户 小组 食品 UserTeams UserFoods
基本上我想拥有用户实体的Interests属性,但没有单独的表格。
我首先使用EF 4.1代码POCO类。我知道最简单的事情是将Teams and Food集合作为属性放在User上,这没关系,但从对象模型的角度来看,我希望它是它自己的属性。知道如何实现这种映射吗?
答案 0 :(得分:3)
我想说:你正在寻找的地图是不可能的,因为:
如果您不希望将类Interests
映射到表,则它不能是实体,Interests
类中的User
属性不能是导航属性。为了避免EF将Interests
属性解释为导航属性,您只能有两个选项:
NotMapped
- &gt;没有用,因为你会失去从User
到Team
和Food
完全Interests
课程标记为ComplexType
- &gt;在您的示例中不可能,因为复杂类型为not allowed to contain navigation properties。这仅仅来自我的理解水平。我不太可能忽视另一种选择。