从派生类获取属性的更好方法
我有下一堂课,
public class MainClass
{
public ClassA someProp { get; set; }
}
public class ClassA
{
public virtual Type Types => Type.None;
}
public class ClassB:ClassA
{
public override Type Types => Type.Default;
public string FieldName { get; set; }
}
我想从 ClassB 获取 FieldName
var result = entities.Where(x => x.someProp != null).Select(x => x.someProp).ToList();
,比我得到
var fields = (from ClassB in result select t.FieldName).ToList();
更好的方法从 ClassB
获取 FieldName
我不认为这是最好的解决方案。也许我的问题有一些最佳实践?
i have next class
public class MainClass
{
public ClassA someProp { get; set; }
}
public class ClassA
{
public virtual Type Types => Type.None;
}
public class ClassB:ClassA
{
public override Type Types => Type.Default;
public string FieldName { get; set; }
}
i want get FieldName from ClassB
var result = entities.Where(x => x.someProp != null).Select(x => x.someProp).ToList();
and than i get
var fields = (from ClassB in result select t.FieldName).ToList();
what is better way get FieldName
from ClassB
I don't think this is the best solution. Maybe there are some best practices for my question?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您必须过滤实体并仅获取 ClassB 实体,然后照常读取属性。
You've to filter the entities and get only those that are ClassB, then read the property as usual.
你可以试试这个:
You can try this:
这是一种更短的方法,您可以尝试从 someProp 强制转换 ClassB:
This is a shorter way, you can try cast ClassB from someProp: