【问题标题】:Error 1 Operator '==' cannot be applied to operands of type 'int?' and 'System.Guid' [closed]错误 1 ​​运算符“==”不能应用于“int?”类型的操作数和'System.Guid' [关闭]
【发布时间】:2014-07-31 07:09:31
【问题描述】:

我收到以下错误错误 1 ​​运算符“==”不能应用于“int?”类型的操作数和“System.Guid”。

但我确信它们都是 Guid 类型...

public string getOuderEmailAdress(Guid kindid)
        {

            var result = (from a in dc.TOUD_KINs join b in dc.TOUDs on a.fkOuderId equals b.Ouderid where a.fkKindId == kindid select b.Email).Single();
            return result;
        }



        protected void Page_Load(object sender, EventArgs e)
        {

            Guid id = new Guid(Request.QueryString["id"]);

            if (id != null)
            {
                //Response.Write("id is ");
                Session["id"] = id;


                email = Ouder.getOuderEmailAdress((id));
            }
        }

在数据库中也有两个唯一标识符

【问题讨论】:

  • dc 是如何定义的?你能给我们看看它的类声明吗?
  • 为什么不直接发挥你的价值?
  • 你相信一件事。编译器相信另一个。你认为哪个是正确的?
  • 你没有问过问题,你只是讲了一个故事。你写了一些代码,它错了,你得到了一个错误。你有什么问题?
  • DC 定义为 DAL.VindjekindjeDataContext dc = new DAL.VindjekindjeDataContext();我不确定它是否是一个好主意,因为 guid id 与 int 完全不同。 fkKindId = 我的 Toud/Kin 表中 KindId ('childId') 的外键,该表将我的父表和子表链接在一起。哈哈,是的,埃里克,他可能是对的:)

标签: c# guid uniqueidentifier


【解决方案1】:

当您说它们都是唯一标识符时,我不确定您所说的“两者”是什么意思,但我会看看 dc.TOUD_KINs fkKindId 字段。看起来该字段可能作为 int 保存在数据库中。这是我可以想象你会得到这个错误的唯一原因。

【讨论】:

  • 是的,因为我认为这个错误很奇怪,因为它们在我的数据库中都是相同的类型,即 uniqueidentifier。
  • 您使用的是 EntityFramework 还是类似的东西?您生成的类是否具有正确的 fkKindId 数据类型?
  • 是的,我确保我添加到我的 dbml 文件中的表中的类型是一致的。
  • 我不知道该告诉你什么,除了 int?错误是与 guid 比较的可为空的 int 列的特征。
  • 我知道我做错了什么,对不起浪费你所有的时间我是一个初学者......我在SQL server management studio中更改了数据库表,并假设他会动态调整表我的 .dbml 文件......再次抱歉......
猜你喜欢
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 2016-06-17
  • 1970-01-01
  • 2015-01-25
  • 2011-12-31
相关资源
最近更新 更多