在我的数据库中,我有一对多的关系(乐队有很多专辑)。然而,当相册中的外键被限制时,这种关系变成一对一关系。应生成实体框架导航属性一对多变成一对一
SELECT * FROM Band
LEFT JOIN Album ON (Band.BandID = Album.AlbumID AND Album.SomeOtherKey = 12)
我的问题
public class Band
{
[Key]
public int BandID { get; set; }
//Other fun attributes
public virtual ICollection<Album> Albums { get; set; }
}
public class Album
{
[Key]
public int AlbumID { get; set; }
public int BandID { get; set; }
//Other fun attributes
//Some other foreign key
public int SomeOtherKey { get; set; }
}
SQL是我应该有另外一个导航属性public virtual Album Album
的乐队,或者因为这并非总是如此,这将是一个坏主意?我应该使用LINQ吗?使用实体框架和模型来实现这个最简单的方法是什么?
是。基本上,一旦Album表中的SomeOtherKey字段受到限制(通过WHERE Album.SomeOtherKey =?),Album和Band之间的关系就会变为一对一。我在相册中有Band导航属性,但我希望我的查询生成一个列表,并且需要先检查Albums表。 – 2012-07-05 18:42:44