相关疑难解决方法(0)

使用LINQ中的select new返回列表

这是我的方法,它给了我错误.

public List<Project> GetProjectForCombo()
{
    using (MyDataContext db = new MyDataContext (DBHelper.GetConnectionString()))
    {
        var query = from pro in db.Projects
                    select new { pro.ProjectName, pro.ProjectId };

        return query.ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我改变它:

public List<Project> GetProjectForCombo()
{
    using (MyDataContext db = new MyDataContext (DBHelper.GetConnectionString()))
    {
        var query = from pro in db.Projects
                    select pro;

        return query.ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后它工作正常没有错误.

能告诉我,我怎样才能返回ProjectId和ProjectName.

谢谢.

c# linq

56
推荐指数
3
解决办法
30万
查看次数

LINQ to Entities无法识别方法'System.Linq.IQueryable

当我尝试在Sub Select中调用我的存储库时,我收到了此错误.

 IGrpTextRepository rep = new GrpTextRepository();

        var query = new DetailViewModel
        {
            ViewDet = (from gh in _db.Grp
                       select new MultiDetailViewModel
                       {
                           Header = gh,
                           Txts = rep.FindAllLangTxtById(gh.GrpID)

                       }).ToList(),
            Lang = _db.Language.ToList(),

        };
Run Code Online (Sandbox Code Playgroud)

我的界面是

 public interface IGrpTextRepository
{
    IQueryable<GrpText> FindAllLangTxtById(int GrpID);
}

public class GrpTextRepository : IGrpTextRepository
{
    DBEntities db = new DBEntities();

    public IQueryable<GrpText> FindAllLangTxtById(int GrpID)
    {
        return (from lang in db.Language
               join gtxts in db.GrpText on lang.LangID equals gtxts.LangID into jointxt
               from fintxt in jointxt.DefaultIfEmpty()
               where fintxt.GrpID …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

7
推荐指数
1
解决办法
2万
查看次数

如何处理 LINQ to Entities 仅支持无参数构造函数和初始值设定项

因此,当我尝试从 Web Api 获取数据时,就会发生这种情况:

异常消息:

LINQ to Entities 仅支持无参数构造函数和初始值设定项。

这是我的服务:

public async Task<ICollection<TicketDto>> GetAllUnansweredTicketsAsync()
{
        return await _context.Tickets.Include(m => m.Message)
                        .Include(u=>u.User)
                        .OrderByDescending(d=>d.Message.Date)
                        .Select(t => new TicketDto(t)).ToListAsync();
Run Code Online (Sandbox Code Playgroud)

这就是我的 DTO 的样子:

public class TicketDto
{
    public int ID { get; set; }
    public string Username { get; set; }
    public string Issue { get; set; }
    public DateTime Date { get; set; }

    public TicketDto(Ticket ticket)
    {
        ID = ticket.ID;
        Username = ticket.User.UserName;
        Issue = ticket.Message.Title;
        Date = ticket.Message.Date;
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下如何解决这个问题吗?

c# linq ajax entity-framework

3
推荐指数
1
解决办法
3735
查看次数

在linq查询中调用构造函数

我需要在linq查询中调用构造函数.

我收到此错误:

LINQ to Entities中仅支持无参数构造函数和初始值设定项.

这是我的linq查询:

IQueryable<Object> list = (from u in db.Object select new Object(u));
Run Code Online (Sandbox Code Playgroud)

这是我的构造函数:

public Object(Object presentation){}
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

0
推荐指数
1
解决办法
3262
查看次数

标签 统计

c# ×4

entity-framework ×3

linq ×3

ajax ×1