首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >继承和Linq-to-Entities

继承和Linq-to-Entities
EN

Stack Overflow用户
提问于 2012-03-07 05:11:29
回答 2查看 932关注 0票数 1

我有以下模型:

代码语言:javascript
复制
public class Person 
{
    long Id;
    string name;
}

public class Student : Person
{
    string studentId;
}

public class Bus
{
    long Id;

    public ICollection<Person> riders {set; get;}
}

public class SchoolBus : Bus
{
    long schoolBusNumber;
}

我还有以下代码:

代码语言:javascript
复制
SchoolBus schoolBus = new SchoolBus();

schoolBus.riders = new List<Person>
{
    new Student { name = "Jim" },
    new Student { name = "Jane }
}


var query = from rider in SchoolBus.riders
    select new 
    {
        (rider as Student).studentId;
    }

Students和Person设置为单独的表,我使用的是DbContext。

我知道这不起作用的原因,但是有什么可能的解决方案让我使用Person集合来让它返回正确的studentId呢?

EN

回答 2

Stack Overflow用户

发布于 2012-03-07 05:19:25

试试这个:

代码语言:javascript
复制
var studentIds = rider.OfType<Student>().Select(x => x.studentId);
票数 0
EN

Stack Overflow用户

发布于 2012-03-07 05:34:19

如果您的代码与您所显示的完全相同,这将会起作用:

新的SchoolBus = schoolBus SchoolBus();

代码语言:javascript
复制
schoolBus.riders = new List<Person>
{
    new Student { name = "Jim" },
    new Student { name = "Jane }
}
var query = from rider in SchoolBus.riders
select new 
{
    riderID = (rider as Student).studentId;
}

但是如果你的查询是在linq2entity上运行的,你应该显示你的确切代码和你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9591980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档