【发布时间】:2015-05-20 17:33:38
【问题描述】:
我不知道如何使用 Entity Framework 运行存储过程。我试过了:
public static string GetGroupModFunc(string group_mod_id)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["QLNTEntities"].ToString());
conn.Open();
SqlCommand cmd = new SqlCommand("GET_GROUP_PERMIT", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@GID", group_mod_id);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
conn.Close();
return "Test connection";
}
我的连接字符串实体客户端
<add name="QLNTEntities"
connectionString="metadata=res://*/DATA.ModelQLNT.csdl|res://*/DATA.ModelQLNT.ssdl|res://*/DATA.ModelQLNT.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;initial catalog=QLNT;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
运行后报错
System.ArgumentException 关键字不支持“元数据”
谢谢大家。
【问题讨论】:
-
亲爱的,我想通过 Connection string 使用 SQLcommand 运行存储过程,然后将数据结果绑定到 DataTable 。
-
你不能。 EntityFramework 以不同的方式执行此操作。您要么放弃 EntityFramework 要求(并修复您的连接字符串),要么按照其他地方描述的 EntityFramework 方式进行。有很多例子
-
“你有没有想过这个 stackoverflow.com/questions/10898344/” - 那么 EF 是一个 ORM 并混合了一个 带有 adhoc SQL-in-code 的 ORM 模型 可以说是代码异味,并且可能违背任何好的 ORM 的目的。通过 EF 设计器封装存储过程要好得多
标签: c# entity-framework stored-procedures