Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从基于存储过程的站点移动到ADO.NET实体框架模型_C#_Entity Framework - Fatal编程技术网

C# 从基于存储过程的站点移动到ADO.NET实体框架模型

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

我在一个网站上工作了18年

目前,每当我们想要编写方法来调用数据库中的信息时,我们必须创建多个方法和一个存储过程来转换为一个对象

  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%'" 
                        );