错误:无法隐式转换类型INT?建模 我的数据库配置文件和文章中有2个表...当有人在我的页面上创建文章而没有他们收到个人资料ID的个人资料时,他们共享一个共同字段个人资料ID strong>为NULL,但是当他们创建那个配置文件时,我试图将他们的profileID从NULL更新为他们从注册配置文件获得的当前ID。我收到一个无法隐式转换类型INT?建模我一直在尝试新事物,但它一直给我这个错误
var oldID = (from x in db.Articles
where a == x.RegistrationID
select x.ProfileID).FirstOrDefault();
Article article;
var newID = (from x in db.profiles
where a == x.registrationID
select x.profileID).FirstOrDefault();
oldID = newID;
article = oldID;
db.Entry(article).State = EntityState.Modified;
article = oldID 行发生错误。
答案 0 :(得分:0)
似乎Article
类(我在猜测)有一个名为ProfileID
的属性是int
类型。将类型为article
的变量Article
分配给名为oldId
的变量时,编译器将导致类型不匹配。
请注意,C#是一种强类型的OO编程语言。您必须遵循面向对象的编程规则。
如果您需要更多建议,请参阅Jeremy和David的评论并更新您的问题。
答案 1 :(得分:0)
执行第一个LINQ表达式后,变量oldID
将获得ProfileID
实例的Article
属性的值。我猜ProfileID
属性是numeric
类型。 article是Article
类的实例。通过编写article=oldId;
,您试图在不同类型上设置数字类型。那不行!
您应该获取旧的Article
对象并将ProfileID属性值设置为新值,然后保存。
var oldArticle = (from x in db.Articles
where a == x.RegistrationID
select x).FirstOrDefault();
var newID = (from x in db.profiles
where a == x.registrationID
select x.profileID).FirstOrDefault();
oldArticle.ProfileID=newID;
db.Entry(article).State = EntityState.Modified;