我想映射t和q。我可以这样做吗? (在asp.net中)
我想得到并将其映射到q以编辑记录
public void EdittblUser(tblUser t)
{
var q = db.tblUsers.SingleOrDefault(u => u.userName == t.userName );
//mapping here
dbconnect.submitchange();
}
有些事情是这样的:
var user =
dbconnect.tblUsers.SingleOrDefault(u => u.userName == _VOUser.Username);
if (user == null)
// throw exception
Mapper.Map(tbluser, user);
dbconnect.SubmitChanges();
return true;
答案 0 :(得分:2)
试试这个:
public void EdittblUser(tblUser t)
{
var q = db.tblUsers.SingleOrDefault(u => u.userName == t.userName );
if(q==null)
// throw exception
q.Property1=t.Property1;
q.Property2=t.Property2;
// and so on
dbconnect.submitchange();
}
其中Property1
,Property2
等是用户对象的属性。 (例如,它们将是userId,userName等等。)
编辑记录的另一种方法是使用AutoMapper:
// I suppose that you have made a reference of AutoMapper assembly in your project.
// Having done this then you should include it to your source file using the using
// statement
using AutoMapper;
public void EdittblUser(tblUser t)
{
Mapper.CreateMap<Model1, Model2>();
var q = db.tblUsers.SingleOrDefault(u => u.userName == t.userName );
q = Mapper.Map(Model1, Model2)(t);
dbconnect.submitchange();
}
Model1和Model2是要在它们之间创建映射的类。
但是,由于t和q都属于同一类型,我不明白为什么要使用它。
有关AutoMapper的进一步说明,请查看codeproject中的这一个链接:
[http://www.codeproject.com/Articles/639618/CRUD-Opearations-using-AutoMapper-in-an-MVC-Applic][1]