Tag: code first

EF Code-First中查找表的最佳实践

我正在用EF做我的第一个项目,我打算去代码优先模型。 我试图找到一些关于处理一个相当经典的“查找表”场景的指导。 我正在处理一个非常规范的情况,我会坚持地址数据。 所以,我有一个简单的地址DTO …… public class Address { public int Id { get; set; } public virtual string StreetAddress1 { get; set; } public virtual string StreetAddress2 { get; set; } public virtual string City { get; set; } public virtual string State { get; set; } public virtual string ZipCode { get; set; […]

EF 4.1 Code First – 确定哪些属性已更改

我正在使用Entity Framework 4.1 Code First。 是否有内置方法来获取自从数据库加载实体以来哪些属性已更改的列表? 我知道代码首先检测到对象已被更改,但有没有办法确切地获取哪些属性已更改?

使用EF Code First的DDD – 如何将它们组合在一起?

我正在学习DDD开发几天,我开始喜欢它了。 我(我想)理解DDD的原理,你的主要关注点是业务对象,你有聚合,聚合根,聚合根源的存储库等等。 我正在尝试创建一个简单的项目,我将DDD开发与Code First方法结合起来。 我的问题是:(我使用的是asp.net MVC) DDD Business Objects将与Code First对象不同? 即使它们可能是相同的,例如我可以拥有一个具有所有规则和方法的Product业务对象,并且我可以拥有一个Product code first(POCO)对象,它只包含我需要保存在数据库中的属性。 如果问题1的答案是“真”,那么我如何通知Product POCO对象业务对象Product的属性已被更改,我必须更新它? 我正在使用“AutoMapper”或类似的东西? 如果答案是“不”,我就完全迷失了。 你能告诉我一个最简单的(CRUD)例子,我怎么能把这两个放在一起? 谢谢

在购物车的会话状态中存储数据

试图把我存储的内容添加到购物车中,然后将其转移到另一个页面,以便让GridView显示我添加到购物车会话中的所有商品。 将其存储为对象会话。 -AddToCart在A Session中获取行详细信息和存储,然后获取该会话对象并将其显示在另一页上的Grid视图中。 从中获取此代码: protected void GridViewDisplay_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == “AddToCart”) { object[] values; DataTable orderTable; // Retrieve the row index stored in the // CommandArgument property. int index = Convert.ToInt32(e.CommandArgument); // Retrieve the row that contains the button // from the Rows collection. GridViewRow row = GridViewDisplay.Rows[index]; values = […]

entity framework一到零或一个没有导航属性的关系

我试图删除由于FK约束导致的记录时遇到问题。 因此,我回到了绘图板,并试图说明这种关系应该如何运作。 这是我的代码第一类: public class MemberDataSet { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public int? DeferredDataId { get; set; } [ForeignKey(“DeferredDataId”)] public virtual DeferredData DeferredData { get; set; } } public class DeferredData { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } //other properties } 我想要实现的是MemberDataSet有零个或一个DeferredData。 我可以从MemberDataSet访问DeferredData,但DeferredData不需要导航属性返回到MemberDataSet。 DeferredData应严格要求MemberDataSet。 因此,在理想的世界中,删除MemberDataSet将删除DeferredData(如果已分配)。 在我看来,我想要指明的是: modelBuilder.Entity().HasOptional(d […]

entity framework4.1 RC(代码优先) – 实体不更新关联

我想做的事情很简单。 我有两节课: public class TownRecord { public int Id { get; set; } public string ShortName { get; set; } public string FileName { get; set; } public string tags { get; set; } public virtual TownRecordType RecordType { get; set; } public DateTime? DateScanned { get; set; } public DateTime? RecordDate { get; set; […]

PostSharp将k__Backing字段插入实体类,导致数据库生成失败

我正在使用C#中的Microsoft Entity Framework和CodeFirst创建数据库。 我想在WPF应用程序中使用数据库,因此实体类应该实现“INotifyPropertyChanged”。 这可以使用PostSharp方面非常优雅地完成,PostSharp方面每次属性更改时自动触发PropertyChanged事件。 如果我创建这样的方面并在我的实体类上使用它,我在尝试创建数据库时会得到以下例外: \tSystem.Data.Entity.Edm.EdmNavigationProperty: Name: The specified name is not allowed: ‘k__BackingField’. 显然,PostSharp会创建一个名为“k__BackingField”的属性,导致数据库创建失败,因为从EntityFramework的角度来看,它是一个无效的名称。 有没有办法绕过这个错误而不在每个实体类中手动实现“INotifyPropertyChanged”? PS:英语不是我的母语,如果你告诉我发帖中可能出现的错误,我将非常感激。 先感谢您

entity framework代码中的许多关系首先使用“虚拟”关键字相互访问

此摘录代码与显式Junction表成功创建了许多关系,其中包含其他数据。 问题: 我希望能够从学生访问课程,反之亦然, (因此注释的虚拟属性。但如果我取消注释它,它会导致错误(见下文)) 如果我没有显式创建联结表(没有其他数据),则虚拟关键字可以正常工作,因为EF会按惯例创建联结表。 题: 如何在不经过注册的情况下让学生访问课程? 或者那是不可能的? 如果不可能,那么最好的方法是什么呢? ( EF和C#的初学者 ) public class Student { [Key] public int StudentId { get; set; } public string StudentName { get; set; } //public virtual Course Courses { get; set; } } public class Course { [Key] public int CourseId { get; set; } public string CourseName […]

在ASP.NET MVC 4 C#Code First中指定ON DELETE NO ACTION

如何在模型设计中指定ON DELETE NO ACTION外键约束? 目前,我有: public class Status { [Required] public int StatusId { get; set; } [Required] [DisplayName(“Status”)] public string Name { get; set; } } public class Restuarant { public int RestaurantId { get; set; } [Required] public string Name { get; set; } [Required] [EmailAddress] public string Email { get; set; } […]

Code-First EF4中的多对多关系

您如何在EF4 Code-First CTP3中表示多对多关系? 例如,如果我有以下类: class User { public int Id { get; set; } public string Name { get; set; } public ICollection Profiles { get; set; } } class Profile { public int Id { get; set; } public string Name { get; set; } } 在数据库中有一个UserProfiles表,其中包含FK for User和FK for Profile。 我该如何映射? 编辑:我知道当前如何映射在Profile上有一个ICollection属性,但我真的不希望有一个相反的导航属性应该是“用户有很多配置文件”。