我想将一些实体写入数据库,但有很多实体我喜欢为他们写一些东西,现在我知道了:
using(var dbContext = new myEntity())
{
db.EntityName.AddToObject(newEntity);
db.SubmitChanges();
}
我不知道如何将其更改为: db.AddToObject("stringName") 我只想编写一些代码,因为我有很多表,所以我的模型中有很多实体。
编写一个方法并用不同的名称调用它对我有好处。
我想将一些实体写入数据库,但有很多实体我喜欢为他们写一些东西,现在我知道了:
using(var dbContext = new myEntity())
{
db.EntityName.AddToObject(newEntity);
db.SubmitChanges();
}
我不知道如何将其更改为: db.AddToObject("stringName") 我只想编写一些代码,因为我有很多表,所以我的模型中有很多实体。
编写一个方法并用不同的名称调用它对我有好处。
一种简单的方法是将插入方法封装到委托中并将其传递给您的代码,如下所示:
void InsertEntity<TEntity>(TEntity newEntity, Func<myEntity, TEntity> insertCallback) where TEntity : EntityObject
{
using(var dbContext = new myEntity())
{
insertCallback(dbContext, newEntity);
dbContext.SaveChanges();
}
}
之后,在插入项目时,您需要提供 insert 方法(假设您有一个名为 的实体Client
):
var client = new Client();
InsertEntity<Client>(client, (dbContext, entity) => dbContext.Client.AddToObject(entity));
ScottGu 有一个可以使用的Dynamic Linq库。