【[C#.NET][Entity Framework] 实践 DAL 共用方法的交易】教程文章相关的互联网学习教程文章

c# – 使用Reflection动态地向Entity Framework添加对象【代码】

在下面的代码中,domainObject的类型各不相同(但以DO结尾,然后我修剪它以获得相应的表名).拥有表的名称及其类型,我想更新一个现有对象 – 它的名称与由于EF的tableName相同 – 在数据库中使用来自domainObject的新属性值.因此,我必须首先在表中找到具有相同ID的POCO来覆盖它.这是到目前为止的代码:public void Update(object domainObject) {Type type = domainObject.GetType();string tableName = type.Name.Substring(0, type.N...

c# – ‘EntityFramework 6.1.3’已经安装.无法添加对’System.ComponentModel.DataAnnotations’的引用【代码】

我的winforms解决方案正在运行,但是当我重新打开它时,一些引用不再有效.因此,我删除了项目中的所有引用,包括对microsoft dll的引用. 现在我正在尝试添加引用.我该怎么办? 我尝试使用包管理器添加实体框架,但收到错误. 已经安装了’EntityFramework 6.1.3′.无法添加对“System.ComponentModel.DataAnnotations”的引用. 现在,当我打开包管理器,并选择On Line时,实体框架被勾选.但是,当我选择Installed Packages时,它会指出“当前解...

c# – Entity Framework Core SelectMany然后包含【代码】

我似乎无法弄清楚如何在使用SelectMany时让EF Core包含/加载相关对象.context.MyObject.Where(w => w.Id == Id).SelectMany(m => m.SubObject).Include(i => i.AnotherType)本来会想到类似上面的东西会起作用,但是折叠的SubObject集合使AnotherObject为null并且不包括在内. 一直在寻找几个小时. 任何帮助,将不胜感激. 谢谢解决方法:Would have thought something like the above would work它曾经在EF6中工作,但目前EF Core不支持 ...

c# – 如何在Entity Framework上下文类中创建模型时动态更改列名【代码】

我有这样一个基类:public class BaseClass : IEditableObject {public BaseClass() {}public Guid Id { get; set; }public void BeginEdit() {}public void CancelEdit() {}public void EndEdit() {} }我有2个派生类:public class User : BaseClass {[Column( "UserFirstName" )]public string FirstName {get;set;}[Column( "UserLastName" )]public string LastName {get;set;} }public class School : BaseClass {[Column( "S...

c# – ASP.NET MVC EntityFramework延迟加载还是ViewModel?

要理解我的意思,最好的例子是ASP.NET MVC上的一个简单的“MyBlog”.我有来自表作者,帖子和评论的数据库.如果我需要传递一些帖子并显示它的作者和所有评论,那么最佳做法是什么?使用EntityFramework延迟加载或使用所有necesery数据创建ViewModel? 还有一个问题要问我:如果它是ViewModel,那么我将它用于每个视图,或仅为此创建,需要一些额外的数据?或者我可能不理解使用ViewModel的想法? 在此先感谢您的部分经验:)解决方法:您应该...

c# – Entity Framework直接更新虚拟属性而不创建新记录【代码】

这是一个简单的实体:public class Customer : Entity {public virtual Location Location { get; set; } }现在假设我们已经有了一个客户:var customer = new Customer() {Location = new Location("China")};现在我们要更新他的位置:var customer = context.Customers.First(x => x.Location.Country == "China"); customer.Location = new Location("America"); context.SaveChanges();现在,当我查看数据库时,位置记录“中国”...

c# – 在使用Entity Framework等待数据更改时,是否有更好的替代Thread.Sleep?【代码】

我有一个使用Entity Framework访问的数据库和一组我需要在远程机器上按顺序执行的操作.机器在完成后通过更新数据库进行通信,否则不报告.鉴于其余代码的体系结构,提供一些我可以加入的事件将是困难的(虽然这将是理想的).我试图做的一个例子是:private enum Machines {SetA,SetB };private void Action() {ExecuteWork(Machines.SetA);while (!IsWorkDone(Machines.SetA)){Thread.Sleep(TimeSpan.FromMinutes(1));}ExecuteWork(Mach...

c# – EntityFramework .Take()随着时间的推移失去性能【代码】

我编写了一个函数,允许我一次针对特定数字的实体运行一个函数,动态调整查询时间.但是,当它继续通过实体时,即使仅占用1个实体,每个查询的时间也会逐渐变长.public async Task Work(Expression<Func<dbase, bool>> predicate, Action<CollectionsMax, dbase> action) {try{using (var cmax = _cmax){cmax.Configuration.AutoDetectChangesEnabled = false;double count = await cmax.dbases.CountAsync(predicate);var takeAmount = ...

c# – 使用Entity Framework映射到现有表【代码】

当尝试使用Entity Framework将我的类映射到现有表时,我遇到了一些困难. 我的课:[Table("builder_User")] public class MobileUser {[Key][Column("id")]public int Id { get; set; }[Column("beansCount")]public int BeansCount { get; set; }[Column("bonusSum")]public double BonusSum { get; set; }[Column("facebookUsername")]public string FacebookUserName { get; set; }[Column("firstName")]public string FirstName ...

c# – Compact Framework 3.5应用程序在CE7 / Motorola MC32N0上间歇性崩溃【代码】

我们有一个使用Compact Framework 3.5的C#应用??程序,运行在运行Windows CE 5.0和Windows Mobile的“移动计算机”上. 该应用程序适用于这些设备,包括运行Windows CE 5.0的Motorola / Symbol MC3190. 现在,这款MC3190已经淘汰,并被摩托罗拉/ Symbol MC3200(也是MC32N0)取代.此设备运行Windows CE 7.0并预安装了Compact Framework 3.5. 我们的应用程序间歇地和神秘地崩溃在这个设备上. 通过在我们的应用程序中打开和关闭大量表单,我可...

C#Entity Framework:添加到上下文和saveChanges()之间的数据验证【代码】

我有一个在C#中使用实体框架的简单场景.我有一个实体帖子:public class Post {public int Id { get; set; }public string Name { get; set; }public string Description { get; set; } }在我的PostManager中,我有以下方法:public int AddPost(string name, string description){var post = new Post() { Name = name, Description = description };using (var db = new DbContext()){var res = db.Posts.Add(post);res.Validate(...

c# – EntityFramework未识别手动进行的实体更改【代码】

我正在手动更改实体,然后我试图验证我的DbContext中是否有任何与我的更改匹配的实体.我所期待的“答案”是“真实的”,但它是“假的”.由于我的代码非常复杂并且有很多规则,我创建了一个简单的例子来尝试解释这个问题:var propertyValues = new Dictionary<string, object>() {{"MyProperty1", "My value"},{"MyProperty2", 10} };var entityId = 13; var entityType = typeof(MyEntity);// Applies the changes this.ApplyChanges...

c# – 通过外键在Entity Framework 6中的另一个表中获取记录【代码】

我需要将所有座位都附加到特定的预订中. 我有这些课程:public class Seat {public Guid Id { get; set; }public string RowNumber { get; set; }public int SeatNumber { get; set; } }public class ReservationSeat {public Guid Id { get; set; }public Guid ReservationId { get; set; }public Guid SeatId { get; set; }public Reservation Reservation { get; set; }public Seat Seat { get; set; } }我试过这个linq到实体声...

c# – Entity Framework Core上没有CreateStoredProcedure方法【代码】

我想使用Migration Builder创建存储过程,但没有CreateStoredProcedure像这样的Migration类中的方法.public override void Up() {CreateStoredProcedure("MyStoredProcedure",p => new{id = p.Int()},@"SELECT some-data FROM my-table WHERE id = @id"); }public override void Down() {DropStoredProcedure("MyStoredProcedure"); }如何使用Entity Framework Core在迁移中创建存储过程?解决方法:使用可以使用migrationBuilder....

c# – Entity Framework 6是否会在Task.Run()语句中正常运行?【代码】

我的问题很简单,如果我在Task.Run中执行读取或写入以使我的方法异步,它是否会像普通的代码一样工作,或者EF中是否存在禁止这种做法的东西? 例如:await Task.Run(() => {var data = _context.KittenLog.ToList(); }我有一种不安的感觉,这样做会打开一堆蠕虫,但我在谷歌上找不到关于两者结合的东西.解决方法:是的,你可以.但是没有必要将它包装在对Task.Run的调用中,因为它具有本机异步支持,请参见https://msdn.microsoft.com/en-us/...