在Mac上使用redis
和EF Core 1.1
使用类似
的模型Asp Core 1.1
并采取行动
public class Model {
public int? Id { get; set; }
public string OtherProp { get; set; }
}
访问网址public class ModelController
{
public Model Get(int? id)
{
DbContext.Set<Model>.Find(id)
}
}
失败,并显示消息/model/10
错误信息很明确,但我的问题是,如果有办法使这项工作,它似乎是一个非常常见的用例和曾经在以前版本中工作的用例。
我尝试将The key value at position 0 of the call to 'DbSet<Model>.Find' was of type 'int', which does not match the property type of 'Nullable<int>'
投射到id
,但它没有效果。有什么想法吗?
另外,如果它有用,则为the line that's breaking in EF
答案 0 :(得分:2)
查看您已链接的代码:这不起作用,因为CLR始终为您提供无法实例的基础类型。 (不知道为什么,之前有过类似的问题......)
代码中:typeof(int?) != ((int?)1).GetType()
。
因此,比较属性的类型(int?
)和参数的类型总是会失败。您必须要求EF Core团队为此添加对无效类型的支持。