喝醉的跑步机 · matlab报错[X, ...· 2 月前 · |
坚韧的甜瓜 · jquery-weui ...· 6 月前 · |
直爽的牛肉面 · 日常记录(11)Verilog编程规范说明- ...· 11 月前 · |
好帅的棒棒糖 · 绘画不靠“笔”靠“算” ...· 1 年前 · |
有没有一种方法可以将类名转换为C#中的字符串?
作为实体框架的一部分,.Include方法接受执行查询时要联接的以点分隔的字符串列表。我有我想要加入的类模型,并且出于重构和将来代码维护的原因,我希望在引用这个类时能够具有编译时安全性。
因此,我有没有办法做到这一点:
class Foo
tblBar.Include ( Foo.GetType().ToString() );
我不认为我可以在没有实例的情况下执行GetType()。有什么想法吗?
因为
GetType
是一个方法,所以不能在没有实例的情况下使用
.GetType()
。
您可以从类型中获取名称,如下所示:
typeof(Foo).Name
正如Chris所指出的,如果需要程序集限定名,可以使用
typeof(Foo).AssemblyQualifiedName
typeof(Foo).ToString()
Include requires a property name ,而不是类名。因此,它是您想要的属性的名称,而不是它的类型的名称。 You can get that with reflection 。
你可以使用
DbSet<contact>
代替
ObjectSet<contact>
,所以你可以使用lambda作为参数,例如
tblBar.Include(a => a.foo)