我有一个存储过程,它调用一个包含 100 列的视图,存储过程被调用,其中包含一组用户想要查看的列,并且只返回那些选定的列。
实体框架无法处理它,因为我定义的复杂类型需要 100 列。
假设我用'PersonName,PersonCity'调用存储过程,我在复杂类型中定义的其他98种类型是否有可能设置为null?
我有一个存储过程,它调用一个包含 100 列的视图,存储过程被调用,其中包含一组用户想要查看的列,并且只返回那些选定的列。
实体框架无法处理它,因为我定义的复杂类型需要 100 列。
假设我用'PersonName,PersonCity'调用存储过程,我在复杂类型中定义的其他98种类型是否有可能设置为null?
您不能为此使用实体框架。您应该使用 ADO.net 和 datatable 来调用 SP 并检查返回的数据结构。像这样的东西:
var cmd = new SqlCommand("spName", db); cmd.CommandType=CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@ColumnNames", "a,b,c"); var da = 新的 SqlDataAdapter(cmd); 数据表 dt = 新数据表();da.填充(dt);
foreach (DataColumn dc in dt.Columns) { //now you have all the information about the results columns }