gpt4 book ai didi

c# - 将 SQL 表值参数与 Entity Framework 结合使用

转载 作者:行者123 更新时间:2023-12-02 21:45:42 25 4
gpt4 key购买 nike

我在项目中使用 Entity Framework v4.0 连接到数据库。我面临的情况是将列表作为输入参数传递给存储过程,并在 SP 中进行一些操作并返回列表作为 SP 结果。我知道表值参数是一种选择。但经过一番调查后,我发现不可能在 Entity Framework 中使用表值参数。有没有其他方法不使用表值参数通过 Entity Framework 来完成此操作?

最佳答案

即使您使用 Entity Framework ,您仍然可以将 TVP 传递给存储过程。

示例:

// Create metadata records
IEnumerable<SqlDataRecord> sqlDataRecords = new List<SqlDataRecord>();

// Create a list of SqlDataRecord objects from your list of entities here

SqlConnection storeConnection = (SqlConnection)((EntityConnection)ObjectContext.Connection).StoreConnection;
try
{
using (SqlCommand command = storeConnection.CreateCommand())
{
command.Connection = storeConnection;
storeConnection.Open();

SqlParameter[] sqlParameters = parameters.ToArray();
command.CommandText = YourStoredProcedureName;
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("YourTVPName", SqlDbType.Structured)
{
Value = sqlDataRecords,
TypeName = "dbo.Your_Table_Type"
});

using (DbDataReader reader = command.ExecuteReader())
{
// Read results
}
}
}
finally
{
storeConnection.Close();
}

关于c# - 将 SQL 表值参数与 Entity Framework 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19545835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com