zoukankan      html  css  js  c++  java
  • c# EF中equal的用法注意

    Entity FreamWork 无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型错误解决:

    最近在开发中把我原来抄的架构里面的主键由固定的Guid改成了可以泛型指定的类型,结果,发现执行EF在查询的时候,不能支持equal,只能用==,理由很简单,因为equal是object的方法,虽然所有的类都是object的子类,但是ef不支持复杂类型的直接检索,只能用简单类型,比如常用的string,int,guid,这些,都可以做==,也可以用来检索。但是比如Person对象,虽然可以做==,但不能用于EF的检索。

    最终解决方案,把firstOrDefault方法改成用find方法,EF提供的,就可以了。

     public T GetById(TKey id)
            {
                return dbContext.Set<T>().Find(id);
            }
  • 相关阅读:
    windows平台下一款强大的免费代理获取工具
    彻底搞懂Git Rebase
    line-height
    text-indent
    text-decoration
    text-align
    color
    CSS属性汇总
    font
    font-style
  • 原文地址:https://www.cnblogs.com/Cruise-Yang/p/9565450.html
Copyright © 2011-2022 走看看