我正在使用实体框架创建数据库第一个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填充自定义对象的数据
答案 0 :(得分:0)
无法将三个字符串属性更改为一个字符串属性。如何在街道有两个单词的情况下,如何将地址属性划分为街道城市和拉链?
您可以创建Address类(具有三个属性)并将其用作Person类。但是当您尝试重新生成/更新模型时,您会遇到问题 - 在这种情况下,最好先使用代码方法。
答案 1 :(得分:0)
我认为您正在寻找的是Person
与名为Address
的新班级之间的关系。
要引用Address
内的新Person
课程,您需要执行以下操作:
public class Person
{
...
public Guid AddressId { get; set; }
public Address { get; set; }
}
然后,实体框架会将Address
与给定的AddressId
与Person
相关联。
在Address
内你可以这样做:
public class Address
{
public string City { get; set; }
public string Street { get; set; }
...
}
要确保在加载Address
时加载Person
,您可以使用实体框架的Eager Loading
功能,例如:
context.Person.Include(x => x.Address)
答案 2 :(得分:0)
使用可枚举的列表,如
public class Person
{
public string firstname {get;设置;}
public string lastname {get;设置;}
公共列表地址{get;组; }
}
公共类地址 {
public string street{get; set;}
public string city{get; set;}
public string zip{get; set;}
}