如何使用dynamic关键字来处理实体框架

时间:2011-03-04 09:31:41

标签: asp.net

我正在使用.net framework 3.5框架&用于数据库操作实体框架。因此,要获取数据,我正在使用LINQ查询&返回列表中的结果集。 e.g

public class Emp
{
 public int CD{get;set;}
 public string Name{get;set;}
}


public List<Emp> GetServTypeForPromotionDue()
{
        return (from a in Context.TableName
                    select new Emp{ a.CD, a.NAME });

}

我打算从3.5迁移到4.0。我在.net 4.0中听说过动态关键字。我可以使用“动态”关键字来删除Class Emp&amp;没有创建匿名方法?

1 个答案:

答案 0 :(得分:5)

可以使用dynamic(例如返回List<dynamic>,并在select子句中构建ExpandoObject),但我不推荐它。您将失去编译时类型安全性,Intellisense等几乎没有什么好处。您认为使用dynamic 获得的是什么?只需删除几行代码?

编辑:使用动态的示例:

public List<dynamic> GetServTypeForPromotionDue()
{
        return (from a in Context.TableName
                select (dynamic) (new { a.CD, a.NAME })).ToList();
}

或者...

public List<dynamic> GetServTypeForPromotionDue()
{
        return (from a in Context.TableName
                select (dynamic) (new ExpandoObject { a.CD, a.NAME })).ToList();
}