C# 从基于存储过程的站点移动到ADO.NET实体框架模型
我在一个网站上工作了18年 目前,每当我们想要编写方法来调用数据库中的信息时,我们必须创建多个方法和一个存储过程来转换为一个对象C# 从基于存储过程的站点移动到ADO.NET实体框架模型,c#,entity-framework,C#,Entity Framework,我在一个网站上工作了18年 目前,每当我们想要编写方法来调用数据库中的信息时,我们必须创建多个方法和一个存储过程来转换为一个对象 private static DataTable GetAddress(int ownerId) { using (var sql = SqlWrapper.CreateOrUpdateWrapper(AdapterType.SqlCommand, CommandType.StoredProcedure, "Address_LoadById
private static DataTable GetAddress(int ownerId)
{
using (var sql = SqlWrapper.CreateOrUpdateWrapper(AdapterType.SqlCommand, CommandType.StoredProcedure, "Address_LoadById"))
{
sql.AddParameterWithValue("@id", ownerId, SqlDbType.Int);
sql.Open();
var dt = new DataTable();
dt.Load(sql.ExecuteReader());
return dt;
}
}
private static List<Address> LoadAddressesByItemId(int ownerId, bool loadContact)
{
List<Address> addresses = new List<Address>();
var dt = GetAddress(ownerId);
if (dt == null || dt.Rows.Count <= 0) return addresses;
foreach (DataRow dr in dt.Rows)
{
addresses.Add(new Address(dr, loadContact));
}
return addresses;
}
private Address(DataRow dr, bool getContact = true)
{
AddressID = Convert.ToInt32(dr["AddressID"]);
AddressType = (AddressTypes)(Convert.ToInt32(dr["addressType"]));
AddressLineOne = dr.GetString("addressLine1");
AddressLineTwo = dr.GetString("addressLine2");
AddressLineThree = dr.GetString("addressLine3");
Town = dr.GetString("town");
County = dr.GetString("County");
Country = dr.GetString("Country");
PostCode = dr.GetString("Postcode");
OwnerId = Convert.ToInt32(dr["OwnerId"]);
}
private静态数据表GetAddress(int-ownerId)
{
使用(var sql=SqlWrapper.CreateOrUpdateWrapper(AdapterType.SqlCommand,CommandType.StoredProcedure,“Address\u LoadById”))
{
AddParameterWithValue(“@id”,所有者id,SqlDbType.Int);
sql.Open();
var dt=新数据表();
Load(sql.ExecuteReader());
返回dt;
}
}
私有静态列表LoadAddressesByItemId(int-ownerId,bool-loadContact)
{
列表地址=新列表();
var dt=获取地址(所有者ID);
如果(dt==null | | dt.Rows.Count a.OwnerId==OwnerId.ToList();
}
我该怎么做呢,类库有200多个类。因此,我只希望在为该类或链接到该类的类编写新代码时,将类转换为使用EF
对于上面的示例,我想使用现有的存储过程代码和更新地址来保留Owner类,因此它使用实体框架和Linq
有人知道如何开始使用EF 6 mid project,并在需要时仅将EF6应用于新类和旧类,而不编辑整个类库。最近我们遇到了类似的情况,要调用存储过程进行查询操作,您可以在Entityframework中使用SqlQuery,这非常有用
_dbContext.Database.SqlQuery<EntityType>("sp_name",parameters).ToList();
请注意,上下文类的dbContext对象继承自Entityframework的dbContext类如果没有任何代码和更多背景信息,任何人都无法回答此问题。此外,如果没有可以用来创建示例性解决方案的示例,很难回答这个问题。请将此信息和至少一些格式添加到您的问题中。
_dbContext.Database.SqlQuery<EntityType>("sp_name",parameters).ToList();
_dbContext.Database.ExecuteSqlCommand(
@"UPDATE tblname SET Rating = 5" +
" WHERE Name LIKE '%Entity Framework%'"
);