Tag: linq to sql

LINQ to Entities不支持错误,方法

为什么我收到此错误: LINQ to Entities不支持“Single”方法。 请考虑使用“First”方法。 public ActionResult Details(int id) Line 27: { var result = (from d in _db.MovieSet Line 29: where d.Id == id Line 30: select d).Single(); // // } 代码编译安全,但只有在调用相应部分时才会中断。 我是LINQ的新手,因此不知道哪些方法适用于LINQtoSQL或LINQtoEntities。 这意味着更多错误! 我们不记得所有这些方法。 我的问题是,如果适用于某些类型/场景的方法存在局限性,为什么它们出现在Intellisense中? 编辑:任何解决方法/技术有助于了解是否支持?

LINQ中的实体附件问题

我试图从表单POST收到LINQ实体后,将LINQ实体附加到数据上下文。 但是,我得到的只是以下exception: An entity can only be attached as modified without original state if it declares a version member or does not have an update check policy. 我也试过附加原始行,如下所示: dataContext.People.Attach(person, originalPerson); 在这种情况下,我得到以下exception: Object reference not set to an instance of an object. 这是我的控制器中的代码: [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit(int id, Person person) { var prevPerson = dataContext.People.Single(p => […]

LINQ不能使用string.contains?

这是我的代码: string queryString = “Marco”.ToLower(); utenti = db.User.Where(p => queryString.Contains(p.Nickname.ToLower()) || queryString.Contains(p.Nome.ToLower()) || queryString.Contains(p.Cognome.ToLower())).ToList(); 但我得到: String.Contains方法仅支持可在客户端上计算的参数。 为什么? 我不能用.Contains() ?

如何确保Linq to Sql不会覆盖或违反不可空的数据库默认值?

我有一个带有这些字段的表的SQL Server数据库: 一个默认值为1的位, NOT NULL 。 具有默认值gettime() smalldatetime , NOT NULL 。 没有默认值的int , IDENTITY , NOT NULL 。 当我为此表生成Linq to SQL时,会发生以下情况: 该bit没有特殊处理。 smalldatetime没有给予特殊处理。 int标记为IsDbGenerated 。 这意味着当我使用Linq to SQL进行插入时,将发生以下情况: 该bit将作为0发送,覆盖默认值。 对? smalldatetime将作为未初始化的System.DateTime发送,在SQL Server中产生错误,因为它不符合SQL Server smalldatetime范围。 对? 不会发送IsDbGenerated int ; DB将生成一个Linq to SQL将读回的值。 要使此方案有效,我需要做哪些更改? 总结一下:我想要使用DB分配的默认值的非可空字段,但我不希望它们是IsDbGenerated如果它意味着我在使用Linq to SQL进行更新或插入时无法为它们提供值。 如果这意味着我必须手动修改Linq生成的代码到SQL,我也不希望它们是IsDbGenerated 。 编辑:答案似乎是这是当前Linq to SQL的限制。

LINQ to SQL connectionstring

我有一个应用程序,我希望能够为我的LINQ to SQL配置连接字符串。 我已经尝试了很多不同的方法,但似乎无法让它发挥作用。 我想在运行应用程序时在代码中动态执行此操作,原因是用户可以更改连接设置。 如果我从app.config中删除connectionString,应用程序仍然正常(通信),这让我想知道我应该在哪里更改连接字符串?

使用LINQ-to-SQL,这个存储库模式是否有效?

我目前正在阅读Pro Asp.Net MVC Framework一书。 在本书中,作者建议使用类似于以下的存储库模式。 [Table(Name = “Products”)] public class Product { [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)] public int ProductId { get; set; } [Column] public string Name { get; set; } [Column] public string Description { get; set; } [Column] public decimal Price { get; set; } [Column] public string […]

LINQ to SQL insert-if-non-exist

我想知道如果在表中不存在记录,是否有更简单的方法来插入记录。 我还在尝试构建我的LINQ to SQL技能。 这就是我所拥有的,但似乎应该有一种更简单的方法。 public static TEntity InsertIfNotExists ( DataContext db, Table table, Func where, TEntity record ) where TEntity : class { TEntity existing = table.SingleOrDefault(where); if (existing != null) { return existing; } else { table.InsertOnSubmit(record); // Can’t use table.Context.SubmitChanges() // ’cause it’s read-only db.SubmitChanges(); } return record; }

如何有效地转换List ?

我有一个 List 但我需要一个 List 有没有办法在c#中强制转换? 或者使用Linq获得相同的结果? 我有两个实现相同接口的类: interface IDataField { } class InputField : IDataField { } class PurchaseField : IDataField { } 此列表来自Linq-to-Sql查询: List list = (from i …. select i).ToList();

如何使用datacontext进行事务处理

我可以使用带有datacontext的事务,以便在出错后可以回滚上下文的状态吗? 如果是这样,那怎么办?

使用LINQ to SQL进行分页搜索结果

使用LINQ to SQL获取分页结果的最佳模式是什么? 我有以下情况: 假设我想按描述搜索项目表。 我可以轻松地做到: public IQueryable FindItemsByDescription(string description) { return from item in _dc.Items where item.Description.Contains(description); } 现在,对这个结果集进行分页的最佳方法是什么? 我应该在执行此操作之前执行计数查询以查找结果集大小,然后根据我的需要限制此查询吗? 我觉得这是要走的路。 我应该执行完整查询,从数组大小中获取计数并仅返回此数组中的分页子集吗? 如果结果集足够大,我觉得这会浪费很多时间……或者LINQ to SQL在这里做了些什么? 是否有LINQ to SQL常用模式来执行此操作? 编辑:我必须澄清一件小事。 我知道Take和Skip方法。 但是,在使用Take和Skip之前,我应该如何获得查询将检索的结果总数 ?