我有两张相同的桌子。我想将第一个表中的一些行复制到另一个表中。这就是我所做的:
var getTemplate = (from i in dc.Templates where i.Document == tablename select i );
foreach (var val in getTemplate)
{
DAL.Type qt = new DAL.Type();
qt.col1 = val.col1;
qt.col2 = val.col2;
....
}
但是有很多专栏。有没有办法一次复制整行?
答案 0 :(得分:0)
Christos是对的,自动播放器非常适用于此类事物。如果您不想将依赖项添加到自动映射器或学习它,请查看
ConvertAll()。
https://msdn.microsoft.com/en-us/library/73fe8cwf(v=vs.110).aspx
答案 1 :(得分:0)
我认为Automapper会奏效。如果您的列名相同,您将摆脱大量工作量。
你可以像这样转换;
BankViewModel bank = Mapper.Map<BankViewModel>(BankDto);
您的AutoMapper初始化;
public class AutoMapping
{
internal static void Init()
{
Mapper.CreateMap<BankDto, BankViewModel>()
.ForMember(dst => dst.Id, opt => opt.MapFrom(src => src.BankId))
.ForMember(dst => dst.InstitutionBankId, opt => opt.MapFrom(src => src.InstitutionBankId));
}
}
最后,您应该在Global.asax中注册应用程序启动的Inıtialization。
protected void Application_Start()
{
AutoMapping.Init();
}
如果您的列同名Mapper.CreateMap<BankDto, BankViewModel>()
将起作用。