标签: linq-to-entities

当没有任何回报时,Linq抛出异常

我使用以下代码使用实体从我的数据库中提取数据.如果未找到记录,则会抛出以下异常"对象引用未设置为对象的实例."我可以捕获此信息以阻止它导致问题,但宁愿修改代码以避免出现问题.我可以更改Linq查询以使其更宽容吗?

           using (var ctx = new MyEntities())
           {
               var users = ctx.NotificationMessages.Include("NotificationUsers")
                              .Where(x => x.Priority == priority)
                              .FirstOrDefault().NotificationUsers
                              .ToList();
           }
Run Code Online (Sandbox Code Playgroud)

linq-to-entities

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

LINQ到实体 - 空引用

我可以发誓这是前几天的工作:

var resultSet =
    (from o in _entities.Table1
     where o.Table2.Table3.SomeColumn == SomeProperty
     select o
    ).First();
SelectedItem = resultSet.Table2.SomeOtherColumn;
Run Code Online (Sandbox Code Playgroud)

我在最后一行得到一个空引用异常:resultSet.Table2为null.
我不仅确定所有的外键和诸如具有正确值的东西,而且我不知道Table2如何可以为null,因为o.Table2.Table3.SomeColumn == SomeProperty.

resultSet具有所有正确的值,但Table2为null.

[编辑] 这有效:

SelectedItem = _entities.Table2.First(
    o => o.Table2.SomeColumn == SomeProperty).SomeOtherColumn;  
Run Code Online (Sandbox Code Playgroud)

并且,在上面,resultSet具有所有正确的值,因此它不是数据库中的数据的问题; LINQ到实体只是做错了.

c# linq null linq-to-entities

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

Linq-to-entities:在SQL中很容易找到最大值,但在LINQ中很难?

我已经开始在.NET 3.5中使用Linq-to-entities,而且我遇到了一个我可以在SQL中轻松实现的场景,但我对linq有很大的困难.我在SQL数据库中有一个包含三个字段的表,为了这个例子的目的,我将它们称为foo,bar和foo_index,并像这样填充它们:

大段引用

foo | 吧| foo_index

555 101 1

555 101 2

555 101 3

555 101 4

555 101 5

要得到最大foo_index处的条形,其中foo = 555,SQL就是


SELECT bar, max(foo_index) as max_foo_index
FROM T
WHERE foo=555
GROUP BY bar
Run Code Online (Sandbox Code Playgroud)

我已经在C#中编写了一些linq-to-entities代码,但是我觉得有一个更加优雅的解决方案,而且我缺少一些可以使下面的内容更容易的概念.另外,有没有其他方法可以从var中获取数据?


db_entity db = new db_entity();

var q =
     from table in db.T
     where table.FOO == 555
     select new { table.BAR, table.FOO_INDEX };

var q2 = 
     from t2 in q
     where t2.FOO_INDEX == table.Max(r => r.FOO_INDEX)
     select new { t2.BAR };

int result …
Run Code Online (Sandbox Code Playgroud)

c# linq-to-entities .net-3.5

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

测试Linq到实体查询

做这个的最好方式是什么?通常,当我在SQL中创建一个Query时,我会在visual studio的设计器中创建它,并且我多次运行它以查看我的结果....

Linq-to-Entities有这样的事吗?

.net linq linq-to-entities

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

在linq中创建实体的.Include()列表

我有一长串的包括:

.Include("x")
.Include("y")
.Include("z")
.Include("z.w")
.Include("z.v")
Run Code Online (Sandbox Code Playgroud)

我想在三个不同的查询中使用此列表.如何将这些列入列表并在我的所有查询中使用该列表,以免重复自己.

linq-to-entities entity-framework

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

EF 4 Dynamic Where Where Clause无效

我正在尝试使用EF版本4中的Dynamic where子句创建一个查询,并且唯一生成的where子句是初始语句中的"c.clientid == Clientid".查看SQL事件探查器时,result.where语句未附加到结果变量.你能告诉我我做错了什么吗?

var result = (from c in cxt.Customer
                              where c.clientid == Clientid
                              select c);

                string employeenumber = formdata["employeenumber"].ToString();
                if (!string.IsNullOrWhiteSpace(employeenumber))
                {
                    result.Where(t => t.EmployeeNumber.ToLower() == employeenumber);
                }

                string FirstName = formdata["FirstName"].ToString();
                if (!string.IsNullOrWhiteSpace(FirstName))
                {
                    result.Where(t => t.FirstName.ToLower().Contains(FirstName));
                }

               return result.ToList();
Run Code Online (Sandbox Code Playgroud)

linq-to-entities entity-framework-4

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

Silverlight - LinqToEntities - 如何返回匿名类型

我不确定我是否正确地走这条路.我有一个Silverlight应用程序,并使用实体框架的很多.我有两个实体映射到我的数据库:标题和详细信息.我想提交一个左外联接来获取所有标题和详细信息 - 即使标题记录没有详细记录.这是我想从客户端运行的Linq查询:

var query =
      from head in storeContext.Headers
      join detail in storeContext.Details
      on head.HeadId equals details.HeadId
      into group
      select new 
      {
        Desc = head.Description,
        MyCount = group.Count()
      };
Run Code Online (Sandbox Code Playgroud)

由于这是Silverlight,我需要构建我的查询,然后使用storeContext.Load<T>()我的域服务(客户端上下文)中的方法将其提交给服务器.因为这个方法期待一个类型,我不知道如何构建调用以返回匿名类型,因为我在上面?

我做错了吗?我应该在这样的事情上使用Invoke方法吗?如果是这样,我如何定义我想要返回的类型?

是否有人可以指出我正确的方向,我真的会批评它.

谢谢......斯科特

c# silverlight linq-to-entities entity-framework anonymous-types

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

输入字符串格式不正确(十进制到字符串)

我试图将小数转换为我过去曾做过的字符串,但由于某种原因,它决定现在不起作用.我真的无法理解它,我已经在SQL Management Studio中将它设置为十进制并使用linq来传递它但是由于一些奇怪的原因,人类不知道它想要一个日期时间.

码:

protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                tblTest t = new tblTest();

                t.tDecimal = Convert.ToDecimal(tbxDecimal.ToString());

                t.Add(t);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Write(ex.Message);
            }
        }
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

.net c# linq-to-entities decimal

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

使用LINQ-to-XML API创建XML

我想创建一个看起来像的XML

<Records FileUniqueId="1234567" Source="CCC">
  <Record InfNumber="122354" AgencyNumber="017"></Record>
  <Record InfNumber="122355" AgencyNumber="018"></Record>
 <Record InfNumber="122356" AgencyNumber="018"></Record>
</Records>
XElement responseXML = new XElement("Records");
                responseXML.SetAttributeValue(BusinessConstants.colFileUniqueID, _fileUniqueId);
                responseXML.SetAttributeValue(BusinessConstants.colSourceName, _sourceName);

                foreach (InfringementEntity ie in iLES.infringementEntities)
                {
                    responseXML.Add(new XElement("Record"));
                    XElement record = responseXML.Element("Record");

                    record.SetAttributeValue(BusinessConstants.colInfringementNumber, ie.infringementNumber);
                    record.SetAttributeValue(BusinessConstants.colIssueAgency, ie.issueAgency);
                }
Run Code Online (Sandbox Code Playgroud)

我使用上面的代码生成XML,但问题是当我为Record设置属性时,它会每次覆盖1st记录的属性.

所以我得到的XML是:

 <Records FileUniqueId="1234567" Source="CCC">
     <Record InfNumber="122356" AgencyNumber="018"></Record>
      <Record/>
      <Record/>
    </Records>
Run Code Online (Sandbox Code Playgroud)

请帮忙.

.net xml linq linq-to-entities

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

我的查询有什么问题

关于C#vs2008.my贝娄查询的工作向我显示错误.可以告诉我什么是问题以及如何解决这个问题.谢谢提前.

 NorthwindDataContext db = new NorthwindDataContext();
 List<Order> r = (from p in db.Orders
                  select new { p.OrderID, p.OrderDate });
Run Code Online (Sandbox Code Playgroud)

错误信息:

无法将类型'System.Linq.IQueryable'隐式转换为'System.Collections.Generic.List'.存在显式转换(您是否错过了演员?)

c# linq linq-to-entities

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