微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – MVC 4.和实体框架表加入

这个项目让我很生气;-)
我正在尝试连接两个表的简单查询

我有以下内容

存储库类方法

public IQueryable<ADPerson> FindAll(string UserId)
    {
        return (from p in db.ADPerson
                select p); 


    }

在我的控制器中:

var ADPersonList = from o in ADPersonDB.FindAll(GetUserId())
                    join c in MSDNTypeDB.FindAll(GetUserId()) on o.MsdnTypeId equals c.MsdnTypeId
                    select new ADPerson()
                    {

                        AdPersonId = o.AdPersonId,SamAccountName = o.SamAccountName,Description = o.Description,displayName = o.displayName,UserPrincipalName = o.UserPrincipalName,Enabled = o.Enabled,LastUpdated = o.LastUpdated,OnlineAssetTag = o.OnlineAssetTag,MsdnTypeId = o.MsdnTypeId,MsdnSubscription = c.MsdnTypeDescription,};

我一直收到错误

{"The specified LINQ expression contains references to queries that are associated with different contexts."}

我还尝试添加到存储库类:

存储库类方法

public IQueryable<ADPerson> FindAll(string UserId)
    {
        //return (from p in db.ADPerson
        //        select p); 

        var query = from o in db.ADPerson
                    join c in db.MsdnTypes on o.MsdnTypeId equals c.MsdnTypeId
                    select new ADPerson()
                    {

                        AdPersonId = o.AdPersonId,};

        return query;

    }

是否真的很难在两个表之间进行简单连接并在Entity框架中填充变量

谢谢

解决方法

投射到匿名对象
var query = from o in db.ADPerson
   join c in db.MsdnTypes on o.MsdnTypeId equals c.MsdnTypeId
   select new 
   {
     AdPersonId        = o.AdPersonId,SamAccountName    = o.SamAccountName,Description       = o.Description,displayName       = o.displayName,Enabled           = o.Enabled,LastUpdated       = o.LastUpdated,OnlineAssetTag    = o.OnlineAssetTag,MsdnTypeId        = o.MsdnTypeId,MsdnSubscription  = c.MsdnTypeDescription,};

然后映射回您的实体

foreach (var item in query)
{
  var adPerson = new ADPerson
  {
    AdPersonId         = item.AdPersonId,SamAccountName     = item.SamAccountName,Description        = item.Description,displayName        = item.displayName,UserPrincipalName  = item.UserPrincipalName,Enabled            = item.Enabled,LastUpdated        = item.LastUpdated,OnlineAssetTag     = item.OnlineAssetTag,MsdnTypeId         = item.MsdnTypeId,MsdnSubscription   = item.MsdnTypeDescription,{
}

原文地址:https://www.jb51.cc/csharp/243084.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐