标签: linq-to-sql

管理Linq to SQL Dbml文件的最佳实践?

我刚刚开始使用Linq to SQL,我想知道是否有人可以分享任何管理dbml文件的最佳实践.

  • 你如何让他们与数据库保持同步?
  • 您是否拥有整个数据库的单个dbml文件,还是将其拆分为多个逻辑单元?
  • 如何在团队环境中管理此文件?

任何其他提示和技巧欢迎.

linq-to-sql

33
推荐指数
4
解决办法
8794
查看次数

Linq Distinct()按名称填充带有名称和值的下拉列表

我正在尝试与制药公司一起填写下拉列表,如Bayer,Medley等.而且,我从DB获得这些名称,这些名称在DB中重复,但具有不同的ID.

我正在尝试使用Linq Distinct(),但我不想使用相等比较器.还有另外一种方法吗?

我的下拉列表必须填写公司的ID和名称.

我正在尝试这样的事情:

var x = _partnerService
           .SelectPartners()
           .Select(c => new {codPartner = c.codPartner, name = c.name})
           .Distinct();
Run Code Online (Sandbox Code Playgroud)

这显示了ddl中的重复公司.

谢谢!

c# distinct linq-to-sql

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

可以为空的对象必须有值吗?

在线:bool travel = fill.travel.Value;我收到以下错误:

可以为空的对象必须具有值

而且我不确定为什么.我想要做的就是获取当前错误的旅行数据库中的值.任何帮助,将不胜感激.

using (var db = new DataClasses1DataContext())
{
    var fill = (from f in db.expenseHdrs
                where f.rptNo == getPkRowReport()
                select f).FirstOrDefault();

    txtReportDesc.Text = fill.description;
    txtPeriod.Text = fill.period;
    txtPurpose.Text = fill.purpose;

    bool travel = fill.travel.Value;
    chkTravel.Checked = travel 
 }
Run Code Online (Sandbox Code Playgroud)

.net c# exception-handling nullable linq-to-sql

33
推荐指数
4
解决办法
7万
查看次数

Linq to SQL DataContext的多个/单个实例

我有一个项目,有许多不同的类在一组通用的表中查询和修改数据.我已经设置了一个.dbml文件,它为我们提供了一个DataContext类.我的问题是,是否应该由所有对象使用DataContext的单个实例,或者是否可以安全使用多个实例.我也想知道单个DataContext的线程安全性,以及是否应同步访问它的方法.

c# linq-to-sql

32
推荐指数
3
解决办法
2万
查看次数

LINQ在收集条款中的位置

我一直在寻找谷歌,但没有找到任何可以帮助我的技巧.

如你所知SQL有一个"where x in(1,2,3)"子句,它允许你检查多个值.我正在使用linq,但我似乎无法找到与上述语句相同的语法.

我有一个类别ID(列表)的集合,我想检查

我找到了一些使用.contains方法的东西,但它甚至没有构建.

c# linq-to-sql

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

如何用linq进行LIKE查询?

如何在Linq中执行LIKE查询?

我有以下查询我想执行.

var results = from c in db.costumers
              where c.FullName LIKE "%"+FirstName+"%,"+LastName
              select c;
Run Code Online (Sandbox Code Playgroud)

c# linq-to-sql

32
推荐指数
5
解决办法
10万
查看次数

linq to sql Distinct和orderby

var result = table1.Join(table2, o => o.ProgramID, t => t.ProgramID, (o, t) => new { o.ProgramID, t.Program })
         .OrderBy(t => t.Program)
         .Distinct();
Run Code Online (Sandbox Code Playgroud)

上面的linq语句实际上返回了正确的结果,但是他生成的sql(下面)并不是那么简单

SELECT [t2].[ProgramID], [t2].[Program]
FROM (
    SELECT DISTINCT [t0].[ProgramID], [t1].[Program]
    FROM [table1] AS [t0]
    INNER JOIN [table2] AS [t1] ON [t0].[ProgramID] = [t1].[ProgramID]
    ) AS [t2]
ORDER BY [t2].[Program]
Run Code Online (Sandbox Code Playgroud)

我本以为下面的sql更清晰,但我不确定实现它的linq语句.

select distinct 
    o.ProgramID, 
    t.Program 
from 
    table1 0 
    inner join table2 t on t.ProgramID = o.ProgramID 
order by t.Program
Run Code Online (Sandbox Code Playgroud)

提前致谢

c# linq-to-sql

32
推荐指数
3
解决办法
5万
查看次数

LINQ返回List中与其他列表中的任何名称(字符串)匹配的项目

我有2个清单.1是产品的集合.另一个是商店里的产品系列.

如果名称与产品中的任何名称匹配,我需要能够返回所有shopProducts.

我有这个,但似乎没有用.有任何想法吗?

    var products = shopProducts.Where(p => p.Name.Any(listOfProducts.
             Select(l => l.Name).ToList())).ToList();
Run Code Online (Sandbox Code Playgroud)

我需要说给我所有其他名单中存在名称的商店产品.

c# linq linq-to-objects linq-to-sql

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

在Linq查询中调用方法

我想在我的表中插入一个名为'S'的列,它将根据从表列获取的值获得一些字符串值.

例如:for each ID (a.z)我想将它的字符串值存储在另一个表中.字符串值从另一个通过Linq查询获取它的方法返回.

  • 是否可以从Linq调用方法?
  • 我应该在同一个查询中做所有事情吗?

这是我需要获得的信息的结构:

az是表#1中第一个方块中的ID,从这个ID我得到表#2中的另一个id,从中我可以得到我需要在列'S'下显示的字符串值.
在此输入图像描述

var q = (from a in v.A join b in v.B
    on a.i equals b.j
    where a.k == "aaa" && a.h == 0
    select new {T = a.i, S = someMethod(a.z).ToString()})
    return q;
Run Code Online (Sandbox Code Playgroud)

S = someMethod(a.z).ToString()导致以下错误的行:

无法将类型为"System.Data.Linq.SqlClient.SqlColumn"的对象强制转换为"System.Data.Linq.SqlClient.SqlMethodCall".

c# linq linq-to-sql

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

linq-to-sql中的公用表表达式(CTE)?

是否可以在Linq to SQL中执行公用表表达式(CTE)(如下所示).我对CTE和Linq to SQL都很陌生.

我目前正在免费存储过程(但不能以任何方式对付它们)所以我不想仅仅针对一个查询进行存储过程的跳跃,除非它是完全必要的.

这是我在SQL中做的一个例子,我想知道我是否可以在Linq to SQL中做:

WITH TaskHierarchy (TaskID, [Subject], ParentID, HierarchyLevel, HierarchyPath) AS
(
   -- Base case
   SELECT
      TaskID,
      [Subject],
      ParentID,
      1 as HierarchyLevel,
      CONVERT(VARCHAR(MAX),'/') AS HierarchyPath
   FROM Task
   WHERE TaskID = 2

   UNION ALL

   -- Recursive step
   SELECT
      t.TaskID,
      t.Subject,
      t.ParentID,
      th.HierarchyLevel + 1 AS HierarchyLevel,
      CONVERT(varchar(MAX),th.HierarchyPath + CONVERT(VARCHAR(32),t.ParentID) + '/') AS HierarchyPath
   FROM Task t
      INNER JOIN TaskHierarchy th ON
         t.ParentID = th.TaskID
)

SELECT *
FROM TaskHierarchy
ORDER BY HierarchyLevel, [Subject]
Run Code Online (Sandbox Code Playgroud)

common-table-expression linq-to-sql

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