C# 将实体的一部分选择到具有子对象的自定义对象中
我有这样一个实体框架查询-C# 将实体的一部分选择到具有子对象的自定义对象中,c#,entity-framework-6,C#,Entity Framework 6,我有这样一个实体框架查询- var query = from tbl in db.myTable select new MyModel { id = tbl.id, start = tbl.start, end = tbl.end } public class MyModel { public int id {get; set;
var query = from tbl in db.myTable
select new MyModel
{
id = tbl.id,
start = tbl.start,
end = tbl.end
}
public class MyModel
{
public int id {get; set;}
public string _start {get; set;}
public string _end {get; set;}
public Range range {get; set;} // contains start and end property
}
我的模型如下-
public class MyModel
{
public int id {get; set;}
public Range range {get; set;} // contains start and end property
}
在查询select中是否仍然存在将myTable的属性映射到range.start和range.end的方法
我发现唯一可行的方法就是向模型中添加额外的属性,就像这样-
var query = from tbl in db.myTable
select new MyModel
{
id = tbl.id,
start = tbl.start,
end = tbl.end
}
public class MyModel
{
public int id {get; set;}
public string _start {get; set;}
public string _end {get; set;}
public Range range {get; set;} // contains start and end property
}
然后在查询完成后运行一些代码,将_start映射到range.start和_end映射到range.end
问题是我预见到需要从实体将开始/结束映射到许多自定义子模型中。我需要始终从公共文件导入函数,并记住在查询运行后运行它。如果可以直接在select-like中映射它们,那么会更干净-
var query = from tbl in db.myTable
select new MyModel
{
id = tbl.id,
range.start = tbl.start,
range.end = tbl.end
}
或
你是说像这样
var query = from tbl in db.myTable
select new MyModel
{
id = tbl.id,
range = new Range
{
start = tbl.start,
end = tbl.end
}
}
是的,非常简单,有点无聊。谢谢你的帮助。想想看,你不能做像range=newrangetbl.end,tbl.start这样的事情,这让我有点不舒服。再次感谢!