[英]Can I create a new object with the results of a query?
如果有更好的方法可以做到這一點,請告訴我,但這是我所設想的。 能做到嗎
客戶是數據庫/數據上下文中的表。 我想要的是查詢該表並使用它建立一個新對象。
如果我要插入一條記錄,我會做這樣的事情:
Customer cust = new Customer(){ FirstName = "A", LastName = "B", Age = 31 }
db.Customers.InsertOnSubmit(cust);
db.SubmitChanges();
我想做的是用查詢結果實例化該對象。 像這樣:
var query =
from a in db.Customers
where a.FirstName == "A"
select a;
Customer cust = new Customer(){ query };
甚至
Customer cust = new Customer(){
from a in db.Customers
where a.FistName == "A"
select a;
}
有什么辦法可以做到這一點?
是的,像這樣:
var query = from c in db.Customers
where c.FirstName == "somecriteria"
select new Customer()
{
FirstName = "somevalue",
};
您還可以制作完全匿名的對象...
var query = from c in db.Customers
where c.FirstName == "somecriteria"
select new()
{
FirstName = c.SomeProperty,
AnotherProperty=c.AnotherProperty,
};
db.Customers
.Where(x => x.FirstName == "A")
.Select(x => new Customer{ FirstName =x.FirstName , LastName = x.LastName, Age = x.Age})
.FirstOrDefault();
沒有以所需方式克隆對象的內置方法
db.Customers
.Where(x => x.FirstName ="A")
.Select(x => new Customer
{
FirstName = x.FirstName,
LastName = x.LastName,
...
Id = default(x.Id.GetType()) // or copy the Id if you want it
})
.First();
除了此方法外,您還可以添加一個新的Customer構造函數,該構造函數將Customer作為參數來執行此操作,或者添加一個克隆輔助程序。
最后,您可以考慮為此使用AutoMapper 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.