相关疑难解决方法(0)

在尝试解析列以进行不等式比较时,LINQ to Entities无法识别方法'Int32 Parse(System.String)'方法

我的页面中有以下代码:

var myVar= Entity.SetName
                 .Where(p => int.Parse(p.ID) >= start &&
                  int.Parse(p.ID) <= end);
Run Code Online (Sandbox Code Playgroud)

start和end是int,但p.ID是string.所以我应该将p.ID转换为int.但我得到以下错误:

LINQ to Entities无法识别方法'Int32 Parse(System.String)'方法,并且此方法无法转换为存储表达式.

问题出在哪儿??

c# entity-framework

22
推荐指数
2
解决办法
4万
查看次数

实体框架:我在哪里扩展CSDL/MSL?

我正在使用Entity Framework 4.我使用数据库第一个模型,这意味着我从数据库生成了EDM.现在我想添加一些模型定义的函数.我的问题是......在哪里?

如果我把它们放在.edmx文件中,下次更新数据库并生成新的EDM时,我的所有添加内容都不会被破坏吗?我的意思是它说它就在.Designer.cs文件的顶部,"如果重新生成代码,将覆盖对该文件的手动更改."

那么,我在什么文件中添加了我的内容?

edmx entity-framework-4

18
推荐指数
1
解决办法
9161
查看次数

Linq表达式中的Int.Parse

我有以下linq表达式.我想在Nvarchar字段中计算数值的总和.我使用以下代码来执行此操作.但是当我尝试运行它时,我收到一个错误.

var m = new MaterialModelContainer();

var list = 
    (from x in
        (
            from inv in m.INVs
            join l in m.LIBs on inv.MESC equals l.MESC
            join o in m.OUTs on inv.MESC equals o.MESC
            join t in m.TRANs on inv.MESC equals t.MESC
            where t.TYPE == "60"
            select new
            {
                l.MESC,
                l.LINE_NO,
                l.UNIT_LINE,
                Description = l.DES + " " + l.PART_NO,
                inv.NEW_QTY,
                o.PJ,
                o.DATE,
                o.QTY,
                o.QTY_REC,
                TranQty = t.QTY,
                tranDate = t.DATE
            }
        )
        group x by
            new
            {
                x.MESC,
                x.LINE_NO,
                x.UNIT_LINE, …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

12
推荐指数
5
解决办法
2万
查看次数

在组连接linq查询中将字符串转换为十进制

我必须连接两个表,但只返回第二个表中的那些记录,其中与第一个表中的记录关联的所有记录的"值"的总和是相同的.

from p in db.TPs
join n in db.TNs
on p.Key equals n.Key
where (decimal.Parse(p.Value) == db.TNs.Where( nn => nn.Key == p.Key )
                                       .Sum( nn=> decimal.Parse(kk.Value)))
Run Code Online (Sandbox Code Playgroud)

我正在使用Entity Framework Code-First.

当然,Linq抱怨道

LINQ to Entities无法识别方法'System.Decimal Parse(System.String)'方法

表很大,我必须减少输出,因此无法在客户端进行此转换.列类型转换也不是一种选择.

SQL查询是:

select * from TP as p
join * from TN as n on n.Key = p.Key
where p.Value = (select sum(cast(n.Value as decimal(12,2))) from TN where Key = p.Key)
Run Code Online (Sandbox Code Playgroud)

c# sql linq entity-framework

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

LINQ如何在SQL Server中执行CAST()?

我在SQL Server中有一个表,其中的条目来自:

INSERT INTO table(data) VALUES CAST(getdate() AS BINARY(8))
Run Code Online (Sandbox Code Playgroud)

我想执行将执行的LINQ查询:

SELECT CAST(data AS DATETIME) FROM table
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

由于无法控制的原因,日期时间在SQL Server中存储为binary(8),因此我需要检索日期时间。

linq sql-server-2008 c#-4.0

5
推荐指数
1
解决办法
2054
查看次数

如何在实体框架中获取数字字符串列的最大值

我这里有问题。我试图获取 sql 字段的最大值,

LastInvoiceNo = Convert.ToInt64(dbContext.InvoiceMaster.Max(e => e.InvoiceNo));
Run Code Online (Sandbox Code Playgroud)

但它给了我错误的值,因为“InvoiceNo”的列类型是 varchar。所以我尝试将其转换为 Int64 作为

LastInvoiceNo = dbContext.InvoiceMaster.Max(e =>Convert.ToInt64(e.InvoiceNo));
Run Code Online (Sandbox Code Playgroud)

LastInvoiceNo = dbContext.InvoiceMaster.Select(e => Int64.Parse(e.InvoiceNo)).Max();
Run Code Online (Sandbox Code Playgroud)

但它抛出了一个异常

LINQ to Entities 无法识别“Int64 Parse(System.String)”方法,并且该方法无法转换为存储表达式。

c# sql linq entity-framework max

4
推荐指数
1
解决办法
9457
查看次数

LINQ - 将数字存储为字符串

我有以下数据:

PK    OrderNumber      USERDEFFIELD
1     0001             10
2     0001             25
3     0002             20
4     0002             22
5     0002             NULL
6     0003             ABC123
Run Code Online (Sandbox Code Playgroud)

UserDefField列在数据库中是VARCHAR类型.使用LINQ,我如何获得每个订单的SUM(UserDefField)?UserDefField的NULL和非数字值将被视为零.我想要得到的结果:

OrderNumber  TotalQty
0001         35
0002         42
0003          0
Run Code Online (Sandbox Code Playgroud)

如果UserDefField是严格可以为空的数字字段,我知道我会在foreach循环中执行此操作:

 TotalQtyForThisOrder = orders.Sum(w => w.UserDefField ?? 0 );
Run Code Online (Sandbox Code Playgroud)

但是对于字符串字段,应该做什么?非常感谢你的帮助.

c# linq linq-to-entities entity-framework-4

2
推荐指数
2
解决办法
4146
查看次数