我对range
有一个主要问题,就是这样:
我有一个这样的模型:
FromSql
我想从数据库中的过程中获得一些结果(sql serever)。 当我执行以下代码
public partial class model
{
public string name
}
它显示了这样一个例外:
var sql = "EXECUTE [myprocedure] @param1 ";
SqlParameter sqlParameter = new SqlParameter
{
ParameterName = "param1",
DbType = DbType.Int32,
Value = 10;
}
var result = db.model.FromSql(sql,SqlParameter);
因此,我向模型添加了主键:
The entity type 'model' requires a primary key to be defined.
但是这次它显示了执行:public partial class model
{
[key]
public int ID {set;get;}
public string name
}
我知道我必须在数据库响应中添加The required column 'ID' was not present in the results of a 'FromSql' operation.
,但是由于我的数据库中有很多过程,所以无法进行全部编辑,因此无法执行此操作。
因此,我正在寻找一种无需编辑程序即可解决问题的方法。
能帮上我吗?!
答案 0 :(得分:3)
如果您使用的是Entity Framework Core 2.x,请查看查询类型(https://docs.microsoft.com/en-us/ef/core/modeling/query-types)。 表(实体类型)始终需要一个ID,而查询类型则不需要。
使用查询类型,您可以省略ID。否则,您必须确保您的存储过程也返回一个ID,因为表/实体类型始终需要一个ID。
从EF Core 3.0开始,有一个.HasNoKey()而不是查询类型来定义没有ID(https://docs.microsoft.com/de-de/ef/core/what-is-new/ef-core-3.0/breaking-changes#query-types-are-consolidated-with-entity-types)的实体。