Tag: entity framework

从生成db scema中禁用System.CompositionModel.DataAnnotation而不是仅用于不引人注意的jqueryvalidation

我想使用System.CompositionModel.DataAnnotation来构建Model,但它不应该影响数据库模式,例如,如果我使用Required那么它不应该使该列在数据库中不可为空。 我想使用Data注释的原因是用于MVC 4 JQuery Unobstrusivevalidation。 截至目前,我已通过使用validation @Html.TextBoxFor(model => model.BookingRequest.Email, new { data_val = “true”, data_val_required = “Please provide Special Notes” }) 我认为这不是执行validation的最佳实践或标准方法。 我想把我的模型改成这样的东西。 [Required] public string Email { get; set; } public string CustomerName { get; set; } public string ContactNumber { get; set; } 所以我不需要在TextAreaFor中生成html元素时传递html属性,但在数据库中它应该是可空的。 我这样做的原因是有另一个服务使用相同的上下文但它不提供电子邮件值。 而且我不想改变已经运行的服务。 我使用EntityTypeConfigurtaion(Fluent API)而不是DataAnnotation来配置模型。 在此先感谢您抽出时间来审核我的问题。

使用LINQ to Entities将多个记录插入表的正确方法

正如我们许多人所做的那样,我设置了一个简单的循环来从数据库添加多个记录。 一个典型的例子是这样的: 方法一: // A list of product prices List prices = new List { 1, 2, 3 }; NorthwindEntities NWEntities = new NorthwindEntities(); foreach (int price in prices) { Product newProduct = new Product(); newProduct.Price = price; NWEntities.Products.AddObject(newProduct); } NWEntities.SaveChanges(); 然而,当我第一次设置循环时,我直观地写道: 方法二: Product newProduct = new Product(); foreach (int price in prices) { newProduct.Price […]

无法在源实体集’团队’的实体类型’Data.Team’上自动绑定导航属性’Players’

我正在使用EF6 Code First。 我有以下课程: public class Player { [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [Required, MinLength(2, ErrorMessage = “Player name must be at least 2 characters length”)] public string Name { get; set; } [Required] public int TeamClubId { get; set; } [ForeignKey(“TeamClubId”)] public virtual Team Club { get; set; } [Required] public […]

entity framework:如何检测数据库的外部更改

我有一个存储过程,可以更改数据库中的大量数据。 从应用程序调用此存储过程,同时使用EF进行数据操作。 所以我单击一个按钮,存储过程在数据库中运行,数据被更改,EF显示旧数据给用户。 有没有办法强制DbContext或ObjectContext刷新数据库中的数据? ObjectContext.Refresh()可能是解决方案,但我不想为每个可能更改的表调用此方法。 我希望一次性刷新所有表格。 我正在使用Entity Framework 5,面向.NET 4.0 编辑:已添加数据,但EF不反映现有数据的修改。 我看到新添加的记录,但我看不到我对现有记录所做的更改。

破坏内存泄漏VS2015。 大规模的本机堆

我正在努力解决内存问题,我可以肯定地看到,但我不知道它究竟发生在何处以及何时发生。 我的托管堆大小似乎没问题(100MB),但是本机堆大小在未知时刻开始增长,它仍然会一直运行,直到它达到~2GB并且应用程序崩溃。 我的应用程序正在运行许multithreading,并且它在很多循环中通过EF 6进行大量的Db连接。 这就是为什么我只是通过查看日志或提供断点来调试代码真的很难。 我想也许我可以通过查看内存来看到问题,但只有我能看到的是我的本机堆大小主要由大小为8,192字节的对象填充。 所以我可以看到问题确实发生了,但仍然不知道为什么。 我不确定我是否使用Visual Studio内存分析器的100%function。 我现在能看到的是: 我还能做些什么来找到这个问题? 也许这是一个愚蠢的问题,但我正在解决这个问题两天,我几乎达到了我的想法限制。 我已经通过了断点,日志,代码分析,但我仍然没有任何线索。 我会感激任何想法。 [编辑] 2017年2月15日15:11 我能够找到负责泄漏的代码,但对我来说仍然没有意义。 这段代码如何导致大量内存泄漏? 代码是: public class DbData : IDisposable { private DBEntity db; public DbData() { db = new FruitDBEntity(); } public Fruit AddFruitDefinition(Fruit fruit) { lock (thisLock) { var newFruit = db.Fruits.Where(f => f.FruitId == fruit.FruitId) .Where(f => f.FruitName […]

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

我不确定我是否正确地走这条路。 我有一个Silverlight应用程序,并使用entity framework的很多。 我有两个实体映射到我的数据库:标题和详细信息。 我想提交一个左外部联接以获取所有标题和详细信息 – 即使标题记录没有详细记录。 这是我想从客户端运行的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() }; 由于这是Silverlight,我需要构建我的查询,然后使用来自我的域服务(客户端上下文storeContext.Load()的storeContext.Load()方法将其提交到服务器。 因为这个方法期待一个类型,我不知道如何构造调用以返回匿名类型,因为我在上面? 我做错了吗? 我应该在这样的事情上使用Invoke方法吗? 如果是这样,我如何以及在何处定义我想要返回的类型? 是否有人可以指出我正确的方向我真的应该是它。 谢谢……斯科特

如果在DbContext中更改model-class,我是否重建数据库?

我在带有DBContext的MVC中有我的应用程序,在我的SQL的本地主机中,我的数据库有数据。 然后我需要在一个表中添加一个新列,在我的模型类中添加我的新成员,然后在SQL中修改我的表,但是当我执行我的应用程序时:“..上下文已经改变…考虑使用代码首先迁移.. “。

如何在ASP.NET MVC中映射许多一对多关系?

我有几个域模型 – Address , Customer , Employee , StoreLocation 。 Address与Customer和Employee具有多对一关系,与StoreLocation具有一对一关系。 public class Address { public int Id; public string Line1 { get; set; } public string Line2 { get; set; } public string Line3 { get; set; } } public class Customer { public int Id { get; set; } public string Name { […]

entity framework更新查找表正在向另一个表添加项目

我有一个查找表的问题。 我有一个表单,允许我从列表中选择颜色,该列表将成为团队的一部分。 更新方法如下所示: [HttpPut] [Route(“”)] /// /// Update a team /// /// The team model /// Nothing public async Task Update(TeamBindingViewModel model) { // If our model is invalid, return the errors if (!ModelState.IsValid) return BadRequest(ModelState); // Get our current team var team = await this.service.GetAsync(model.Id, “Colours”); // Make changes to our team team.Name = […]

例外:使用Entity框架ExecuteStoreQuery函数执行Insert Stored Procedure

我试图使用Entity Framework ExecuteStoreQuery通过存储过程插入数据。 我的过程返回标识作为输出参数。 我的存储过程: CREATE PROCEDURE [dbo].[Insert_Department] @Department NVARCHAR(100), @new_identity INT OUTPUT AS BEGIN SET NOCOUNT ON INSERT INTO [Department](Department) VALUES (@Department) SELECT @new_identity = SCOPE_IDENTITY() SELECT @new_identity AS Id RETURN END 资源 class Program { static void Main(string[] args) { using (var initializeDbContext=new InitializeDbContext()) { var name = new object[] { new SqlParameter(“@Department”, […]