Tag: ef code first

如何在ASP.NET MVC中映射许多一对多关系?

我有几个域模型 – Address , Customer , Employee , StoreLocation 。 Address与Customer和Employee具有多对一关系,与StoreLocation具有一对一关系。 public class Address { public int Id; public string Line1 { get; set; } public string Line2 { get; set; } public string Line3 { get; set; } } public class Customer { public int Id { get; set; } public string Name { […]

如何在MVC视图中循环访问DataAnnotation的DisplayName?

我想访问DataAnnotation的DisplayName和模型类的类似GroupName ,然后在MVC视图中循环。 例如,让我说我的一个模型属性是这样的 public class Person { [Display(Name=”Home Phone”,GroupName=”Home”)] public string HomePhone { get; set; } [Display(Name = “Home Address”, GroupName = “Home”)] public string HomeAddress { get; set; } [Display(Name = “Office Phone”, GroupName = “Office”)] public string OfficePhone { get; set; } [Display(Name = “Office Address”, GroupName = “Office”)] public string OfficeAddress { […]

EF6:如何根据实体ID自动生成唯一编号

考虑这样的实体: public class Document { public int Id { get; set; } public long code { get; set; } // Rest of Props } 我需要的是生成一个唯一的长代码,我更喜欢基于Id生成它。 一个简单的经典但不安全的解决方案是获取最后一个Id并将其增加一个并使用,但我正在寻找更好的解决方案,例如计算列,或任何其他方式将代码生成分配给数据库。 如果我尝试将其定义为计算列,则无法访问Id。 将其标记为标识是不可能的,因为Id已经是标识列。 创建获取最后一个ID的方法并不安全和干净。 到目前为止,我正试图在交易的帮助下做前经典解决方案,以确保安全。 还有更好的建议吗?

EF Code First在现有数据库上,映射一对多

我有一个由应用程序生成的数据库,我无法修改(我可以添加表,视图等,但我无法修改现有的表,向它们添加列)。 我在一个Web应用程序上工作,该应用程序使用BreezeJS允许Web应用程序的客户端部分通过OData协议查询数据。 Measurement表具有以下结构: MeasurementId INT DeviceId INT FOREIGN KEY REFERENCES Devices (DeviceId) Name VARCHAR, PRIMARY KEY (MeasurementId) 我需要的是添加可空的ParentId自引用外键,因为我无法修改现有的表,我创建了一个新的, Measurement_Parent : MeasurementId INT FOREIGN KEY REFERENCES Measurements (MeasurementId), ParentId INT FOREIGN KEY REFERENCES Measurements (MeasurementId), PRIMARY KEY (MeasurementId) 我有以下实体: public partial class Measurement { public Measurement() { this.Children = new List(); } public Int32 MeasurementId { […]

entity framework代码优先 – 使用MySql创建数据库?

我只想尝试使用Entity Framework而不是NHibernate。 我正在使用MySql数据库。 所以我用代码第一个系统做了很少的测试。 MsSql数据库一切正常,模式是自动生成的。 但后来我用MySql尝试了它,并且模式生成不起作用。 public class Context : DbContext { public Context() { } public Context(string str) : base (str) { } public DbSet Users { get; set; } } public class User { public int Id { get; set; } public string Name { get; set; } } class Program { static […]

ASP.NET MVC:在程序集中找不到上下文类型

这是我的第一个asp.net mvc项目。 我使用EF代码第一种方法并创建了一个单独的类库来编写我的模型和上下文。 我还在mvc项目中引用了类库。 但是,当我尝试启用迁移时,在创建了更多新模型之后,它给了我一个错误。 我还尝试了这里提到的所有可能的解决方案: 在程序集中找不到上下文类型。 ASP.NET MVC4 问题仍然存在。 我错过了什么吗? 这是Context Class的代码: using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Entity.ModelConfiguration.Conventions; using FYPPharmAssistant.Domain.Models; namespace FYPPharmAssistant.Domain.DAL { public class MyContext : DbContext { public MyContext() : base(“MyConnectionString”) { } public DbSet GenericNames { get; set; } public DbSet Items { […]

entity framework代码首先初始化外键

这是代码的样子: public class Family { public int FamilyID { get; set; } public virtual ICollection FamilyMembers { get; set; } } public class Member { public int MemberID { get; set; } public virtual Family Family { get; set; } } public class Bicycle { public int BicycleID { get; set; } public virtual Member […]

使用Entity Framework Code First将SQL表主键定义为区分大小写

是否可以首先在entity framework代码中定义SQL区分大小写的主键? 我知道默认情况下,SQL在字符串方面不区分大小写,只是为了清楚我不想将整个数据库定义更改为区分大小写,只需要一个表列(主键)。 我从外部API获取数据,该API使用区分大小写的主键(’a’和’A’是不同的记录)发送数据,我知道我可以修改它们并在我的数据库中以不同方式保存它们,但这也需要我在我的代码中到处都是一致的。 这是绝对可能的,但我宁愿避免它。 理想情况下,我希望找到一种方法,通过entity framework将主键定义为区分大小写,而不是使用SQL查询 。 我会很感激任何建议,或者更好的方法来做到这一点。 更新 好吧,所以我几乎失去了对这种可能性的希望,现在当我尝试使用另一种方法时: public ovveride Up() { // drops the existing primary key named PK_dbo.Urls Sql(“ALTER TABLE dbo.Urls DROP CONSTRAINT [PK_dbo.Urls]”); // change the collation Sql(“ALTER TABLE dbo.Urls ALTER COLUMN Url VARCHAR(10) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL”); // re-add the primary key to the Url column Sql(“ALTER TABLE […]

是否有可能在插入/更新之前在POCO中执行操作?

让我们假设这个entity framework示例: public class User { public int UserID { get; set; } public string Name { get; set; } } public class MyDbContext : DbContext { public DbSet Users { get; set; } } class Program { static void Main(string[] args) { using (var db = new MyDbContext ()) { var user = new […]

EF Code First使用多对多关系

我正在使用Visual Studio 2010,C#4.0和Entity Framework 5.0。 我多年来一直在使用数据库优先开发,但我正在尝试先迁移到代码并遇到问题。 阅读和搜索似乎没有解决问题 我已将我的问题简化如下 – 我有两个类 – 评估者和文档。 public class Assessor { public int AssessorID { get; set; } public virtual List Documents { get; set; } } public class Document { public int DocumentID { get; set; } public string DocumentLocation { get; set; } public string DocumentName { get; […]