Tag: entity framework 5

如何处理entity framework中的主键5代码优先

在我的EF5代码优先模型中,如果数据库设置主键,则创建新记录会更好。 我使用Guid作为主键,如果设置了DatabaseGeneratedOption.Identity ,SQL Server将始终创建uniqueidentifier 。 但是,当我尝试初始化数据库时,这会导致问题。 如果我在种子方法中设置Guid,SQL Server会覆盖它。 如果我没有设置Guid,我每次都会得到一条新记录。 使用预先设置的Guids为数据库设定种子并为我的正常操作设置DatabaseGeneratedOption.Identity的建议解决方案是什么? 示例类模型: [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } public RecordName { get; set; } public DateTime? Created { get; set; } public DateTime? Updated { get; set; } 示例种子方法: var record = new Record() { Id = new Guid(“3B80725E-9550-4933-807F-C2FAA0942225”), RecordName = “New Record”, […]

System.Data.Spatial DbGeography.Distance单位?

使用DbGeography.Distance(otherLocation)测量两个位置之间的距离时,距离的单位是多少? 甚至msdn信息和intellisense都无法指定距离的单位。 有谁知道? [编辑]我正在使用srid 4326.大多数例子似乎都在使用。 从我所能找到的,4326似乎是弧度,这让我完全无能为力。 弧度用于测量角度/度数,那么这实际上意味着什么呢?

在什么情况下我需要entity framework中的外键和导航属性

我的Order课程有: public int CustomerId { get; set; } public Customer Customer { get; set; } 我真的需要这两个属性来建立关系吗? 我没有使用断开连接的实体,我使用代码第一种方法。

使用Entity Framework 5.0进行数据注释(数据库优先)

如果我使用entity framework(v5.0)数据库第一种方法,那么使用数据注释进行validation的最佳方法是什么? 这是我的Entity Framework创建的部分类: //—————————————————————————— // // This code was generated from a template. // // Manual changes to this file may cause unexpected behavior in your application. // Manual changes to this file will be overwritten if the code is regenerated. // //—————————————————————————— using System.ComponentModel.DataAnnotations; namespace ACore { using System; using System.Collections.Generic; public partial […]

如何获取具有未知名称的DbEntityEntry EntityKey对象

我不应该使用DbEntityEntry的复杂属性方法或属性方法来获取EntityKey对象。 我找不到MSDN的任何示例,但我认为这在Entity Framework 5中是可能的。我不知道实体密钥或实体的名称,因为我使用的是通用存储库接口。

枚举EF 5.0 – 数据库优先

如果我使用Database First,如何使我的上下文对象使用Entity Framework 5.0中的Enumfunction。

EF是否可以自动删除孤立的数据,而不删除父数据?

对于使用Code First EF 5 beta的应用程序,我有: public class ParentObject { public int Id {get; set;} public virtual List ChildObjects {get; set;} //Other members } 和 public class ChildObject { public int Id {get; set;} public int ParentObjectId {get; set;} //Other members } 必要时,相关的CRUD操作由存储库执行。 在 OnModelCreating(DbModelBuilder modelBuilder) 我已经设置了它们: modelBuilder.Entity().HasMany(p => p.ChildObjects) .WithOptional() .HasForeignKey(c => c.ParentObjectId) .WillCascadeOnDelete(); 因此,如果删除ParentObject,它的ChildObjects也是如此。 […]

Force Entity Framework 5使用datetime2数据类型

在使用Code-First模型时,是否可以全局设置Entity Framework DbContext以将datetime2用于System.DateTime所有属性? 我可以使用HasColumnType()方法为每个列执行此操作,但对于现有的代码库,我想要一个全局解决方案。

DbContext.saveChanges()中的NullReferenceException

以我的第一个babysteps与Entity Framework 5.0,我遇到了我创建的第一个实体的exception。 请注意,之后创建的每个表都可以正常工作。 另外,请注意我已经采取了重新生成数据库和/或重新启动Visual Studio IDE的常规步骤。 使用Model-First,我创建了一个名为Contacts的简单表,定义为 然后我尝试运行以下代码(来自ASP.NET页面的Page_Load) var contact = new DataContext.Contact { Name = aName }; context.Contacts.Add(contact); context.SaveChanges(); (使用aName!= null) 例外: System.NullReferenceException was unhandled by user code HResult=-2147467261 Message=Object reference not set to an instance of an object. Source=System.Web StackTrace: at System.Web.UI.ParseChildrenAttribute.GetHashCode() at System.Collections.Generic.ObjectEqualityComparer`1.GetHashCode(T obj) at System.Collections.Generic.HashSet`1.InternalGetHashCode(T item) at System.Collections.Generic.HashSet`1.AddIfNotPresent(T value) at […]

用于过滤嵌套集合属性的动态表达式树

我正在使用entity framework并动态地使用导航属性构建查询。 对于我的大多数用例,以下工作正常: private static MethodCallExpression GetNavigationPropertyExpression(string propertyName, int test, ParameterExpression parameter, string subParameter) { var navigationPropertyCollection = Expression.Property(parameter, propertyName); var childType = navigationPropertyCollection.Type.GetGenericArguments()[0]; var anyMethod = typeof(Enumerable).GetMethods().Single(m => m.Name == “Any” && m.GetParameters().Length == 2).MakeGenericMethod(childType); var aclAttribute = GetAclAttribute(typeof(T), propertyName); var childProperty = aclAttribute.ChildProperty; var propertyCollectionGenericArg = childType; var serviceLocationsParam = Expression.Parameter(propertyCollectionGenericArg, subParameter); var […]