从DB转换时出现问题

时间:2014-04-01 12:55:46

标签: c# .net asp.net-mvc-4 casting

我使用从MVC项目生成的以下内容(在方法ActionResult索引中), 现在我想将以下var属性(config)转换为模型类,该类是从(config类)生成的DB中的类,我该怎么做?

var config = from m in db.Config
             select m;

我尝试这样但是它不起作用

Config config2 = (Config)config;

还有

Config config = from m in db.Config
                select m;

错误是:

Error   1   Cannot implicitly convert type 'System.Linq.IQueryable<Admin.Config.Admin>' to 'AdminS.Config.Admin'. An explicit conversion exists (are you missing a cast?)

1 个答案:

答案 0 :(得分:6)

var config = from m in db.Config
             select m;

返回IQueryable<Admin.Config.Admin>而不是Admin类。你有效地拥有一个集合,你可以使用.FirstOrDefault()来返回第一个对象(或null)。

Config config2;
Config firstConfigItem = config.FirstOrDefault();

if (firstConfigItem != null) {
   config2 = firstConfigItem;
} 

注意:您不需要从Config转换为Config因为没有意义,您已经在处理正确的类型。编译器最初抱怨IQueryable<Config>Config

要获取可以调用.ToList()的对象列表,您必须迭代集合中的每个对象并相应地分配它,目前您只有1个变量。