[英]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.