Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “什么是”呢;无法创建类型为';系统对象“;方法_C#_Frameworks_Entity_Constants - Fatal编程技术网

C# “什么是”呢;无法创建类型为';系统对象“;方法

C# “什么是”呢;无法创建类型为';系统对象“;方法,c#,frameworks,entity,constants,C#,Frameworks,Entity,Constants,我有两个简单的类,“民意测验”,其中包含一个问题和一个“答案”列表。 这些类是由实体框架创建的 当我这样做的时候: int k = (cmbPolls.SelectedItem as DataBase.Poll).ID; cmbAnswerList.Items.AddRange( mDbContext.Answers.Where(x => x.PollId == k).ToArray()); 一切正常,但将k值粘贴到查询中时: cmbAnswerList.Items.AddRan

我有两个简单的类,“民意测验”,其中包含一个问题和一个“答案”列表。 这些类是由实体框架创建的

当我这样做的时候:

int k = (cmbPolls.SelectedItem as DataBase.Poll).ID;
cmbAnswerList.Items.AddRange(
    mDbContext.Answers.Where(x => x.PollId == k).ToArray());
一切正常,但将k值粘贴到查询中时:

cmbAnswerList.Items.AddRange(
    mDbContext.Answers.Where(x => x.PollId == (cmbPolls.SelectedItem as DataBase.Poll).ID).ToArray());
我得到以下错误:

无法创建“System.Object”类型的常量值。在此上下文中仅支持基本类型(“如Int32、String和Guid”)


这意味着什么,他为什么想要创造一个恒定的值?它与实体框架有任何关系吗?

您应该使用C样式转换而不是安全转换,因为如果转换失败,您将崩溃,唯一的区别是您将获得
NullReferenceException
而不是
InvalidCastException
,这将是更好的选择。安全强制转换在此上下文中毫无意义。请尝试获取强制转换并在外部获取ID,AFAIK实体框架不支持查询内部的复杂强制转换。这看起来像是VB强制转换而不是C#强制转换。
((DataBase.Poll)cmbPolls.SelectedItem.ID
有效吗?