簡體   English   中英

Linq to sql一對多

[英]Linq To Sql One To Many

假設我有3張桌子,“ Cars ,“ Persons ,“ CarOwners

Cars只是汽車的桌子和Persons是不同的人可以根據自己的汽車。 CarOwners具有CarIdPersonId關系以及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鍵)選擇CarIdPersonId ,右鍵單擊並選擇`Set Primary Key。

在EF 4中,您將僅以這種方式在模型中獲得導航鍵(可以使用: Person.CarsCar.Persons )。 不確定L2S。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM