Tag: entity framework

ObservableCollection比ObjectSet更好

为什么将ListBox绑定到在ObjectSet (来自entity framework)上创建的ObservableCollection而不是直接绑定到ObjectSet更好(在WPF,C#,Entity Framework中)? 还有一个问题:当我将ListBox绑定到ObservableCollection ,集合的任何添加都会更新ListBox 。 大。 但ObservableCollection是在ObjectContext (在Entity Framework中)创建的,并且向集合添加新项目不会将项目添加到上下文…如何解决这个问题????

MVC 4 Simple Populate DropDown来自数据库模型

我觉得有点傻。 我试图获得一个MVC 4,使用拳击作为一个function的例子。 我在数据库( Heavyweights等)和Boxers WeightCategories有WeightCategories 。 似乎很简单。 关系是一个拳击手有一个当前的重量类别,但是当我编辑时,我希望它能够通过下拉来改变它。 如果它是我在代码中自己制作的列表,我理解如何做到这一点,但是我有理解如何从WeightCategory表“加载”列表并在拳击手的视图/模型中显示它。 所以,这是我的WeightCategory项的代码: [Table(“WeightCategories”)] public class WeightCategory { [Key] public int WeightCategoryId { get; set; } public WEIGHT_CATEGORIES WeightCategoryType { get; set; } [Display(Name = “Weight Category Name”)] [Required] [MinLength(5)] public string Name { get; set; } [Display(Name = “Weight Limit In Pounds”)] public int? WeightLimit { […]

EF 5.0和动态连接字符串?

有一件事让我现在发疯了。 我的(数据库优先)EF模型需要动态连接字符串(服务器的IP地址可能偶尔会改变)。 因此,在较旧的EF版本中,您可以通过构造函数传递连接字符串,但这在5.0中是不可能的。 到目前为止我所读到的内容,您可以更改数据模板,但每次重新生成模型等时都会被覆盖,因此不是最好的方法。 另一件事是SQLConnectionFactory,但这似乎根本不起作用(Database.DefaultConnectionFactory = new SqlConnectionFactory( … )似乎完全被忽略)。 什么是正确的方法?

每个请求缓存entity frameworkDbContexts

我有几个基于System.Entity.Data.DbContext的类。 它们在Web应用程序的不同端部被多次使用请求 – 实例化它们是否昂贵? 我在HttpContext.Current.Items中缓存了它们的副本,因为每个请求都有几个副本它们感觉不对,但我现在发现它并没有从HttpContext结束时自动处理掉。请求。 在我开始编写代码来处理它之前(在Application_EndRequest中),我认为我已经重新考虑了这种情况,因为如果我应该在需要它们的地方实例化它们并在那里处理它们,那么实际上没有必要缓存它们。 互联网上已经提出了与此类似的问题,但我似乎无法找到一个完全回答我的问题的问题。 对不起,如果我正在重复某人。 更新 我发现在这篇博客文章中处理上下文可能并不重要,但我仍然有兴趣听到它们首先实例化是否昂贵。 基本上,幕后是否有很多EF魔法出现在我想避免经常做的事情上?

在entity framework4.1(CodeFirst)中更新对子对象的引用

我正在尝试使用EntityFramework 4.1(CodeFirst)更新我之前保存的对象 Job类具有以下属性…… public class Job { [key] public int Id { get; set; } public string Title { get; set; } public Project Project { get; set; } public JobType JobType { get; set; } public string Description { get; set; } } 初始创建工作正常,但更新只提交对字符串的更改。 如果我将子对象,例如JobType属性从JobTypeA更改为JobTypeB ,则不会提交更改… 我不打算对JobType进行更改 – 仅限于Job。 using (var context = new […]

从EF选择返回元组

如何使用EF4在Select中检索元组? var productCount = (from product in context.products select new Tuple(product, products.Orders.Count)); 要么 var productCount = (from product in context.products select Tuple.Create(product, products.Orders.Count)); entity framework说第一种情况不能使用空构造函数,而第二种情况则不能识别Tuple.Create方法。

Microsoft.AspNet.Identity.EntityFramework.IdentityUser的外键?

我在VS 2013,刚刚创建了一个MVC应用程序。 我正在创建一个对象,我打算在结果数据库中有一个AspNetUsers表的外键。 该项目确实有一个ApplicationUser(派生自IdentityUser),看起来像是与AspNetUsers表的属性列匹配。 我们如何正确地为此声明外键? public MyObject { public string UserId { get; set; } [ForeignKey(“UserId”)] public ApplicationUser User { get; set;} // other properties } 现在,我修改ApplicationUser以获得MyObjects的集合: public ApplicationUser : IdentityUser { public virtual ICollection MyObjects { get; set; } } 这似乎是如何在EF Code First中进行一对多操作。 但是,当我更新数据库时,我收到的错误表明身份成员(IdentityUserLogin,IdentityUserRole等)没有定义键。 也许那些课程不打算参加EF Code First Migrations? 我可以“到后面”并通过SQL语句添加外键,但如果我想从Code First再次更新,我可能会收到错误(数据库当前不匹配旧的迁移或类似的东西)。 我们如何正确地使用外键参考这些会员表? 我还尝试使用AspNetUsers表的匹配属性创建一个AspNetUser类。 我没有在Client类上使用“public ApplicationUser”,而是声明了“public […]

清洁处理EF中的循环引用的方法?

说我有这个表结构: Client ———– ClientId int not null (identity) CurrentDemographicId int null (FK to ClientDemographic) OtherClientFields varchar(100) null ClientDemographic —————— ClientDemographicId int not null (identity) ClientId int not null (FK to Client) OtherClientDemographicFields varchar(100) null 我们的想法是Client(在EF中)将具有ClientDemographics列表和CurrentDemographic属性。 问题是当我设置对象结构并尝试保存它时,我收到此错误: 无法确定相关操作的有效排序。 由于外键约束,模型要求或存储生成的值,可能存在依赖关系 这个错误是有道理的。 我在表格设置中有一个循环引用。 它不知道首先插入哪个实体(因为它同时需要来自两个表的Id)。 所以,我一起攻击了一个看起来像这样的解决方案: // Save off the unchanged ClientDemograpic ClientDemographic originalClientDemographic = client.CurrentClientDemographic; // Merge the […]

entity framework6代码优先触发器

我正在使用Entity Framework 6 Code First,并且想要创建一个Trigger。 我该怎么做呢? 我需要触发器的原因是因为用户可能直接编辑数据库或通过我正在编写的程序编辑数据库,我需要确保表中的2列不是空的,并且都不是空的。 我一直在寻找,找不到办法。 有没有办法先使用代码指定触发器?

使用LINQ for Entity Framework将实体强制转换为通用方法中的已实现接口

我有一个通用的方法来查询EF中TEntity类型的对象。 我想在TEntity实现特定接口的情况下将条件添加为where子句。 我的方法是: public TEntity GetByUserID(Guid userID) { var query = this.DbSet; if (typeof (TEntity).IsImplementationOf()) { query = query .Where((x => !((IDeletableEntity)x).IsDeleted); } return query .FirstOrDefault(x => x.UserID == userID); } IsImplementationOf ()是一个方法,它只是返回true / false,顾名思义。 当我为实现IDeletableEntity的实体地址运行它时,我收到一个错误: 无法将类型“地址”强制转换为“IDeletableEntity”。 LINQ to Entities仅支持转换EDM原语或枚举类型。 任何想法我如何解决这个LINQ的限制?