English 中文(简体)
Linq 查询结果为两个对象
原标题:Linq query result into two objects

我目前拥有以下直径, 它运行并获得两个强烈键入对象( DAL. Driver 和 DAL. Licence ) 。 但我要将结果投到一个包含 BLL. Driver 和 BLL. Licence 对象的单一驱动ODSJoined 对象 。

public class DriverODSJoined
{
    public BLL.Driver driver { get; set; }
    public BLL.Licence licence { get; set; }

    public static void GetData()
    {
        DAL.DriverDataContext dataContext = new DAL.DriverDataContext();

        var query = (from d in dataContext.drivers
                     join c in dataContext.licences on d.licence_id equals c.id into t1
                     from t2 in t1.DefaultIfEmpty()
                     select new { Driver = d, Licence = t2 });
    }
}

对于连接到一个类对象的查询,I会这样做:

query.Select(a => new BLL.Driver.Driver()
        {
            id = a.Driver.id
            etc
        }).ToList();

所以为了填充DriverODSJoined的列表, 我以为我会做这样的事情:

  query.Select(a => new BLL.Driver.DriverODSJoined()
        {
            driver.id = a.Driver.id,
            licence.id = t2.id
        }).ToList();

然而,它却不起作用。我怎么能这样做呢? 最终,我该如何用一份清单,其中每个清单都包含一个 BLL. Driver 和 BLL. Licence 对象的例子?

Thanks, Richard

最佳回答

不久后我发现,当然,我不得不在将数值分配给其成员变量之前,在包含对象内对每个对象进行即时计算。

List<DriverODSJoined> list = query.Select(a => new DriverODSJoined()
{ 
    driver = new Driver()
    { 
        address1 = a.driver.address1
    },
    check = new BLL.DVLA.Licence()
    {
        id = a.licence.id 
    } 
}).ToList();
问题回答

暂无回答




相关问题
Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How do I compare two decimals to 10 decimal places?

I m using decimal type (.net), and I want to see if two numbers are equal. But I only want to be accurate to 10 decimal places. For example take these three numbers. I want them all to be equal. 0....

Exception practices when creating a SynchronizationContext?

I m creating an STA version of the SynchronizationContext for use in Windows Workflow 4.0. I m wondering what to do about exceptions when Post-ing callbacks. The SynchronizationContext can be used ...

Show running instance in single instance application

I am building an application with C#. I managed to turn this into a single instance application by checking if the same process is already running. Process[] pname = Process.GetProcessesByName("...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签