簡體   English   中英

如何在模型中填充嵌套對象?

[英]How to populate nested object in model?

我正在使用實體框架創建數據庫第一個Web API。 我通過創建ADO.NET實體模型創建了我的模型,該模型自動填充了所選表中的字段。 我希望能夠接受其中一些字段並將它們分組在一個自定義對象中,以便在顯示xml時將它們顯示為子節點。

例如,如果我的班級具有以下屬性

public class Person
{
  public string firstname{get; set;}
  public string lastname{get; set;}
  public string street{get; set;}
  public string city{get; set;}
  public string zip{get; set;}
}

我希望它像這樣

public class Person
{
  public string firstname{get; set;}
  public string lastname{get; set;}
  public string address{get; set;}//where address contains street, city, and zip
}

如何實現這個新的Person類並用dbcontext填充自定義對象的數據

不可能將三個字符串屬性更改為一個字符串屬性。 例如,在街道有兩個單詞的情況下,如何將地址屬性划分為街道城市和郵政編碼?

您可以創建Address類(具有三個屬性)並將其用作Person類。 但是,當您嘗試重新生成/更新模型時會遇到問題-在這種情況下,最好使用代碼優先方法。

屬於關系

我認為您正在尋找的是Person和一個名為Address的新類之間的關系。

要在Person內部引用新的Address類,您可以執行以下操作:

public class Person
{
    ...
    public Guid AddressId { get; set; }
    public Address { get; set; }
}

然后,實體框架將與Person關聯的Address與給定的AddressId關聯。

內部Address您可以執行以下操作:

public class Address
{
    public string City { get; set; }
    public string Street { get; set; }
    ...
}

渴望加載

為了確保一個Address被加載時,一個Person被加載時,你可以使用實體框架的Eager Loading功能,例如:

context.Person.Include(x => x.Address)

使用類似的枚舉列表

public class Person

{

公用字符串名{get; 組;}

公用字符串姓氏{get; 組;}

公開清單地址{get; 組; }

}

公共課程地址{

public string street{get; set;}

public string city{get; set;}

public string zip{get; set;}

}

暫無
暫無

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

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