当 ObjectResult 不再存在时将 EF 6 转换为 .net Core
Convert EF 6 to .net Core when ObjectResult does not exist anymore
我需要从 EF6 转换为 .net core 2。2.x 我一直在搜索,但我不知道如何从可能的 EDMX 转换某些代码
我需要转换的示例
public virtual ObjectResult<string> GetTransData(string iN_MEM_ID)
{
var iN_MEM_IDParameter = iN_MEM_ID != null ?
new ObjectParameter("IN_MEM_ID", iN_MEM_ID) :
new ObjectParameter("IN_MEM_ID", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<string>("GetTransData", iN_MEM_IDParameter);
}
通常我会像这样创建一个 dbcontext 文件
public Clinical_CaseTrakker_Context(DbContextOptions<Clinical_CaseTrakker_Context> options) : base(options)
{ }
然后我像
那样做 dbset
public DbSet<USP_Get_SAI> USP_Get_SAIs { get; set; }
但是这整个 ObjectResult<T>
我从未与
合作过
通常我会像这样调用存储过程
List<OfflineMember> offLine = await _CaseTrakker_Context.OfflineMembers.FromSql("EXECUTE CT.usp_Get_SAI_Offline_Members {0}", userId).ToListAsync();
你可以使用 FromSqlRaw 吗?
var blogs = context.Blogs
.FromSqlRaw("EXECUTE dbo.GetMostPopularBlogs")
.ToList();
FromSqlRaw allows you to use named parameters in the SQL query string, which is useful when a stored procedure has optional parameters:
var user = new SqlParameter("user", "johndoe");
var blogs = context.Blogs
.FromSqlRaw("EXECUTE dbo.GetMostPopularBlogsForUser @filterByUser=@user", user)
.ToList();
EF Core 仍然支持下面的语法,只是对 Task<> 进行了下面的小改动:
Task<List<OfflineMember>> offLine = await _CaseTrakker_Context.OfflineMembers.FromSql("EXECUTE CT.usp_Get_SAI_Offline_Members {0}", userId).ToListAsync();
或
List<OfflineMember> offLine = _CaseTrakker_Context.OfflineMembers.FromSql("EXECUTE CT.usp_Get_SAI_Offline_Members {0}", userId).ToList();
我需要从 EF6 转换为 .net core 2。2.x 我一直在搜索,但我不知道如何从可能的 EDMX 转换某些代码
我需要转换的示例
public virtual ObjectResult<string> GetTransData(string iN_MEM_ID)
{
var iN_MEM_IDParameter = iN_MEM_ID != null ?
new ObjectParameter("IN_MEM_ID", iN_MEM_ID) :
new ObjectParameter("IN_MEM_ID", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<string>("GetTransData", iN_MEM_IDParameter);
}
通常我会像这样创建一个 dbcontext 文件
public Clinical_CaseTrakker_Context(DbContextOptions<Clinical_CaseTrakker_Context> options) : base(options)
{ }
然后我像
那样做 dbset public DbSet<USP_Get_SAI> USP_Get_SAIs { get; set; }
但是这整个 ObjectResult<T>
我从未与
通常我会像这样调用存储过程
List<OfflineMember> offLine = await _CaseTrakker_Context.OfflineMembers.FromSql("EXECUTE CT.usp_Get_SAI_Offline_Members {0}", userId).ToListAsync();
你可以使用 FromSqlRaw 吗?
var blogs = context.Blogs
.FromSqlRaw("EXECUTE dbo.GetMostPopularBlogs")
.ToList();
FromSqlRaw allows you to use named parameters in the SQL query string, which is useful when a stored procedure has optional parameters:
var user = new SqlParameter("user", "johndoe"); var blogs = context.Blogs .FromSqlRaw("EXECUTE dbo.GetMostPopularBlogsForUser @filterByUser=@user", user) .ToList();
EF Core 仍然支持下面的语法,只是对 Task<> 进行了下面的小改动:
Task<List<OfflineMember>> offLine = await _CaseTrakker_Context.OfflineMembers.FromSql("EXECUTE CT.usp_Get_SAI_Offline_Members {0}", userId).ToListAsync();
或
List<OfflineMember> offLine = _CaseTrakker_Context.OfflineMembers.FromSql("EXECUTE CT.usp_Get_SAI_Offline_Members {0}", userId).ToList();