[英]Linq To Sql One To Many
假設我有3張桌子,“ Cars
,“ Persons
,“ CarOwners
。
Cars
只是汽車的桌子和Persons
是不同的人可以根據自己的汽車。 CarOwners
具有CarId
和PersonId
關系以及CarOwnerId
PK。
如果我只是創建關系,然后將它們拖到linq上下文,將生成Person
類的一個屬性,稱為CarOwners
。 要獲得此人擁有的汽車,我必須執行以下查詢:
var cars = person.CarOwners.Select(c=> c.Car);
但我希望能夠做到:
var cars = person.Cars;
那有可能嗎? 額外的步驟很煩人。
您可以在Person
上創建一個新屬性:
public partial class Person
{
public IEnumerable<Car> Cars
{
get { return this.CarOwners.Select(c => c.Car); }
}
}
或升級到實體框架,您可以在其中將邏輯模型與物理模型分開。
嘗試從sql數據庫中的CarOwners
中刪除CarOwnerId
。 然后在SSMS的設計器模式下(使用shift鍵)選擇CarId
和PersonId
,右鍵單擊並選擇`Set Primary Key。
在EF 4中,您將僅以這種方式在模型中獲得導航鍵(可以使用: Person.Cars
和Car.Persons
)。 不確定L2S。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.