尝试解释一下...... 使用以下代码,我一次又一次地将值设置为“temp”。如果表'temp'有100个字段,那么我必须设置值100次。这就是我的意思。丑陋。
//
// POST: /TableA/Create
[HttpPost]
public ActionResult Create(TableA formdata)
{
TableA temp = new TableA();
//A foreign key model in another TableB
var tbb = myDB.TableB.First(a => a.Id == formdata.TableB.Id);
temp.TableB = tbb;
//fields in this table
temp.field1= formdata.field1;
temp.field2= formdata.field2;
temp.field3= formdata.field3;
myDB.AddToTableA(temp);
myDB.SaveChanges();
return RedirectToAction("Index");
}
答案 0 :(得分:0)
在图层中分离代码通常会有所帮助,因为您不会将UI与业务层或数据访问层混合...如果这就是您的要求,因为很难知道您喜欢什么改变你的代码。
否则,您的代码看起来像是所有内容的混合,难以维护并理解它的作用。
您可以执行以下任一操作,而不是手动设置每个属性:
使用对象初始值设定项(C#3.0功能)
TableA record = new TableA {
TableB = myDB.TableB.First(a => a.Id == formdata.TableB.Id),
Field1 = ... ,
...
};
使用实体类提供的静态工厂方法:
TableA record = TableA.CreateTableA(/* provide all values as method parameters */);