我想创建一个通用 C# 类,其方法将使用实体框架向数据库添加一行。
我有一张桌子叫Address
. 我编写了以下代码来向数据库添加地址:
public class AddressExchange
{
public int Insert(Address address)
{
using (var db = new DemoWebEntities())
{
//db.AddObject("Address", address);
db.Addresses.AddObject(address);
db.SaveChanges();
return address.Id;
}
}
}
我想编写一个通用类,它将为我的 EDMX 中的任何实体执行此操作。我认为它应该看起来像这样:
public class EntityExchange<T, KeyType>
{
public KeyType Insert(T t)
{
using (var db = new DemoWebEntities())
{
// The entity set name might be wrong.
db.AddObject(typeof(T).Name, t);
// EF doesn't know what the primary key is.
return t.Id;
}
}
}
我觉得可以用AddObject
方法把对象添加到数据库中,但是entityset名不一定和类型名一样,特别是已经复数的情况下!
我也想将主键返回给调用者,但我不知道如何判断哪个字段包含主键。