Tag: entity framework

EntityDataSource和Entity Framework 6

我正在学习ASP.NET。 我来到EntityDataSorce控件。 我正在使用EF6。 我已经读过这个控件和EF6有一些问题,冲突,但是随着对EntityDataSource的最后更新,这个问题已经解决了。 http://blogs.msdn.com/b/webdev/archive/2014/02/28/announcing-the-release-of-dynamic-data-provider-and-entitydatasource-control-for-entity-framework-6。 ASPX 我试图按照上面的链接。 首先,我创建一个.edmx模型 使用NuGet安装新的EntityDataSource Contro 我添加了两个EntityDataSource控件,并将其中一个的前缀更改为ef。 所以我有两个控件,其中一个是旧的,另一个是新的更新 当我点击旧的时,我可以看到配置弹出窗口并进入配置数据源屏幕。 但是当点击新的时没有弹出窗口。 那么,我该如何配置数据源呢? 这有什么问题? Web.config文件 Default.aspx的:

entity framework中的LINQ to Entities不支持LINQ表达式节点类型“Invoke”

任何人都可以帮助我解决我的问题。 我使用下面给出的代码: public IEnumerable Getdata(Expression<Func> predicate) { return AccountsContext.InvoiceHeaders.Include(“Company”).Include(“Currency”) .Include(“BusinessPartnerRoleList”).Include(“DocumentType”) .Where(predicate); } ….. 在我的代码中我使用如下 Expression<Func> predicate = PredicateBuilder.True(); predicate = predicate.And(o => o.CompanyId == oInvoiceHeader.CompanyId); List lstInvheader=Getdata(predicate).ToList(); 通过这样做,我得到了例外。 [System.NotSupportedException] — {“LINQ to Entities中不支持LINQ表达式节点类型’Invoke’。”}

管理EntityConnection生命周期

管理EntityContext生命周期有很多问题, 例如, 在LINQ to Entities中实例化上下文 我得出的结论是,实体上下文应该被视为一个工作单元,因此不能重复使用。 大。 但是在进行一些加速我的数据库访问的研究时,我遇到了这篇博文… 改善entity framework性能 该post认为EF与其他框架相比性能较差通常是由于每次需要新的EntityContext对象时都会创建EntityConnection对象。 为了测试这一点,我在Global.asax.cs Application_Start()中手动创建了一个静态EntityConnection。 然后我使用语句将我的所有上下文转换为 using( MyObjContext currContext = new MyObjeContext(globalStaticEFConnection) { …. } 到目前为止,到目前为止,这似乎已经加快了一些事情。 但这样安全吗? 使用应用程序范围的静态EntityConnection是否会引入竞争条件? 最好的问候,凯文

EF5 db.Database.SqlQuery映射返回的对象

我有两个C#类 public class SearchResult { public int? EntityId { get; set; } public string Name { get; set; } public Address RegisteredAddress { get; set; } } 和 public class Address { public int? AddressId { get; set; } public string Address1 { get; set; } public string Address2 { get; set; } public string […]

在组连接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))) 我正在使用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 […]

完整插入/更新/删除entity framework中的子实体

我知道它之前已被问过,但经过长时间的搜索和编码后,我无法采用干净利落的方法。 这是我有的: public class QuestionModel { public int QuestionID { get; set; } public string QuestionText { get; set; } public IList Choices { get; set; } } public class QuestionChoiceModel { public int ChoiceID { get; set; } public string ChoiceText { get; set; } } 我在这个ASP.Net MVC应用程序中使用EF 5。 使用InRequestScope() Ninject的通用存储库模式和dependency injection已经到位并且运行顺利。 这些模型映射到实体/从实体映射没有问题。 向数据库添加新问题很简单。 […]

更改外键约束命名约定

我们有自己的命名对象的外部约定,我需要更改自动生成的外键约束的命名约定。 现在它看起来像: FK_dbo.City_dbo.CityType_City_CityTypeId但我希望它被称为City_FKC_CityType 。 我发现了一个类似的问题 ,说你可以手动更改约束的名称。 但是,这不适合我,因为我有很多表和外键约束。 我找到了一些关于“自定义代码优先约定”的信息,我想知道我是否可以使用此更改约束的名称,或者是否有任何方法来实现它? 另一个变体是下载EF的源代码,进行更改并使用它,但是在紧急情况下。 作为旁注,我还想更改主键的命名约定。

Linq to Entities Skip()和Take()

我正在开发一个ASP.NET应用程序,我正在创建一个LINQ查询,它将从db中选择分页记录。 在用户界面上我有一个列表框,用户可以在其中选择多个选项。 我想知道: 如何增加Skip(),Take()参数以查看下一个结果? 如何使用“IN”关键字,以便用户从列表框中选择多个选项时,查询是否可以检查所有值? 我的查询如下所示: var searchResults = context.data_vault.Where(d => d.STATE == lstStates.SelectedItem.Text).OrderBy(d= > d.dv_id).Take(10).Skip(2); GridView1.DataSource = searchResults; GridView1.DataBind();

处理’序列没有元素’例外

我正在更新我的购物车中的数量,但它正在抛出一个序列没有元素的例外。 我不知道这甚至意味着什么。 起初我以为可能在某处传递了空值,但事实并非如此,因为我已经检查过: Sequence不包含任何元素描述:在执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.InvalidOperationException:Sequence不包含任何元素 来源错误: 第35行:var uid = WebSecurity.CurrentUserId; 第36行:var newqty = Request.Form [“Quantity”]; 第37行: OModel.Cart c =(来自database.Carts第38行中的项目: 其中item.UserId == uid && item.PartNumber == pnumber && item.OrderId == oid第39行:选择项目。)first(); 可能导致这种情况的任何想法?

在运行时使用新的匿名类型创建lambda表达式

我想调用一个需要这样的参数的方法: Expression<Func> expr 我需要在运行时构造这个参数,因为我不知道匿名类型之前会是什么样子; 它可以有任何数量的字段: x => new { a=xa, b=xb, c=xc, etc… } 我可以在运行时创建一个具有相同“签名”的类型(这是正确的词吗?)作为所需的匿名类型,但问题是:如何在运行时从那个构造这个lambda表达式? 特别是Expression.New让我烦恼,因为我需要传递一个构造函数信息,我必须从现有类型传递它(它确实可以是一个匿名类型,但我不能在运行时创建一个匿名类型。或者是否存在一种方法吗?)。 更新 (评论中要求的某些上下文) 我想调用的方法是: DependentNavigationPropertyConfiguration.HasForeignKey(Expression<Func> foreignKeyExpression) 我想这样做的原因是自动为从某个基类inheritance的实体创建一个导航属性,包括该外键中该基类的键。 因为实体可以有多个任何类型的键字段,所以TKey类型只在运行时才为我所知。