Tag: entity framework

数据注释的entity frameworkt4模板在哪里?

我一直在谷歌搜索这个不停的2天,并且找不到一个完整的,可以使用的,完全实现的生成DataAnnotations的t4模板。 他们甚至存在吗? 我使用标准t4模板生成POCO。 实际的数据库表具有描述某些validation规则的元数据,例如not null,nvarchar(25)等。 所以我想要的是一个t4模板,它可以使用我的表并生成带有 DataAnnotations的POCO,例如 public class Person { [Required] [StringLength(255)] public FirstName {get;set} } 这是一个基本的和基本的要求,当然我不能成为全世界第一个有这个要求的人吗? 我不想在这里重新发明轮子。 然而,经过几天的高低搜索,我还没有找到它。 这必须是可能的(并且希望必须在某处才可以下载) – 当数据库中已经存在这些注释的元数据时,必须手动输入这些注释是犯罪上的错误。

EF 6.1 ProxyCreationEnabled和LazyLoadingEnabled之间的区别

在DbContext中,您可以配置以下两个参数: context.Configuration.ProxyCreationEnabled = true; context.Configuration.LazyLoadingEnabled = true; 我的理解是,要启用延迟加载,您必须能够为实体创建代理。 换句话说,两个参数都需要设置为true才能启用延迟加载。 1.为什么两个参数都存在,为什么要配置这两个参数? 2.以下配置的效果如何? // Can’t create proxies but can lazy load context.Configuration.ProxyCreationEnabled = false; context.Configuration.LazyLoadingEnabled = true; // Can create proxies but can’t lazy load context.Configuration.ProxyCreationEnabled = true; context.Configuration.LazyLoadingEnabled = false;

EF查询到Oracle抛出“ORA-12704:字符集不匹配”

我正在尝试在Oracle的EF中合并几个列,然后在这样的列上执行.Contains() : public IEnumerable SearchUsers(string search) { search = search.ToLower(); return _securityUow.Users .Where(u => (u.FirstName.ToLower() + ” ” + u.LastName.ToLower() + ” (” + u.NetId.ToLower() + “)”).Contains(search)) .OrderBy(u => u.LastName) .ThenBy(u => u.FirstName) .AsEnumerable(); } 但是,我得到了这个例外: { “Message”: “An error has occurred.”, “ExceptionMessage”: “An error occurred while executing the command definition. See the inner exception […]

为什么EF试图在id-column中插入NULL?

对不起我的英语不好。 我正在使用Entity Framework 4.0(模型优先)编写我的项目。 在项目开始时,我遇到了这个问题:我试图在数据库中插入填充的对象,但我得到一个例外: “无法将值NULL插入列’CategoryId’,表’ForumDB.dbo.Categories’;列不允许空值.INSERT失败。语句已被终止。” Category usingCategory = new Category(“Using Forums”, “usingforums”, 0); using (Context) { Context.Categories.AddObject(usingCategory); Context.SaveChanges(); } 我检查了这个对象,我确信它已经填满了。 以防万一: public Category(string name, string urlName, int index) { CategoryId = Guid.NewGuid(); Name = name; UrlName = urlName; CategoryIndex = index; } 请告诉我发生了什么事? 谢谢你的帮助!

如何举办房地产变更活动?

当我使用DataSet时,有可能在RowChanging,RowChanged,ColumnChanging,ColumnChanged等上引发事件…… 如何对Entity Framework中的实体执行相同操作?

LINQ to Entities无法识别方法’System.String StringConvert(System.Nullable`1 )

我无法弄清楚为什么我会收到这个错误。 我已经使用此function与以前版本的Entity Framework成功使用,但我使用EF6设置了一个新项目并且它没有合作。 using System.Data; using System.Data.Objects.SqlClient; e.Result = from n in MyDB.tblBulletins where n.AnncStart DateTime.Now && n.Approved == true orderby n.AnncStart descending, n.AnncDate descending select new { n.RecID, AnncTitle = n.AnncTitle + ” “, AnncText = (n.AnncImg == null ? n.AnncText : “” + n.AnncText), Email = (n.Email == null ? “” : “” […]

entity framework – 将第一个属性名称字母大写

通常,我倾向于使用以下驼峰大小写约定我的sql数据库列: camelCase(注意第一个字母是小写的)。 但是在使用C#时,我喜欢用以下约定命名对象的公共属性: CamelCase(注意第一个是在uppwer的情况下)。 entity framework的默认行为是将创建的类的属性命名为与它们在数据库中的相对列名相匹配。 是否有项目/解决方案级别的属性可以更改以解决此问题?

检查列表是否包含EntityFramework中其他列表中的项目

我有一个实体Person,它有一个与之关联的位置列表。 我需要查询人员表并从位置列表(标准)中获取至少有一个位置的所有人员。 以下工作但效率很低: var searchIds = new List{1,2,3,4,5}; var result = persons.Where(p => p.Locations.Any(l => searchIds.Any(id => l.Id == id))); 这适用于小型列表(例如5-10个searchIds和5-10个位置的人。问题是有些人可能有100个位置,搜索也可以同时为100个位置。当我尝试执行上述操作时EF实际上产生了一个2000+以上的SQL语句并因为嵌套太深而失败了。虽然嵌套本身已经是一个问题,即使它可以工作,但我仍然不会发生2000+ SQL语句。 注意:真正的代码还包括多个级别和父子关系,但我确实设法使用id而不是完整对象将其归结为这个相当扁平的结构 在EF中实现这一目标的最佳方法是什么?

模拟AsNoTrackingentity framework

我如何模拟AsNoTracking方法? 在下面的示例中,DbContext已注入服务类。如果我从GetOrderedProducts方法中删除AsNoTracking扩展方法,但是AsNoTracking测试失败,因为它返回null,它工作正常。 我也尝试过模拟AsNoTracking来返回正确的值,但它没有用。 public interface IUnitOfWork { IDbSet Set() where TEntity : class; int SaveAllChanges(); } public class Entites : DbContext, IUnitOfWork { public virtual DbSet Products { get; set; } // This is virtual because Moq needs to override the behaviour public new virtual IDbSet Set() where TEntity : class // This is virtual […]

entity framework:将现有子POCO添加到新的父POCO,在DB中创建新子项

我想在断开连接(从上下文)模式中使用Entity Framework POCO。 在我的场景中,我正在创建一个新的Parent对象,并希望将现有的子对象附加到它,然后将其保存到db。 下面的代码在保存新的学生记录时不合需要地插入新的课程记录,而我希望现有的课程记录链接到新的学生记录。 我如何在Entity Framework中执行此操作… 对象可以与上下文断开连接。 (即在一个上下文中查询,然后保存在不同的上下文中) 我不需要从DB重新查询子记录,所以我可以在保存到db时将其附加到父级。 当我已经将它作为内存中的对象时,我真的想避免额外访问数据库。 此页面显示了一个数据库图表,下面的代码基于http://entityframeworktutorial.net/EF4_EnvSetup.aspx#.UPMZ4m-UN9Y class Program { static void Main(string[] args) { //get existing course from db as disconnected object var course = Program.getCourse(); //create new student var stud = new Student(); stud.StudentName = “bob”; //assign existing course to the student stud.Courses.Add(course); //save student to db using […]