EF代码 第一个抽象的关系?
我有一个类,可以继承另一个类具有关系的基类. 示例: 基层:动物 子类1:狗 子类2:CAT 相关的一对一表:疫苗接种 狗可以进行多次疫苗接种.这是作为列表 实现的. 猫可以进行多种疫苗接种. 疫苗接种记录只能与它相关的动物. 疫苗不知道它是否与狗或猫有关. (狗和猫使用非coll缩的GUID.) 没有动物桌子;动物是抽象类.但是疫苗接种仅知道动物,而不是关于狗. (但是,EF都知道这两者.)我的班级库分开了,使动物和疫苗接种在核心图书馆中,狗在另一个库中引用了核心图书馆. 首先使用实体​​框架代码时,疫苗接种表正在获取额外的列:dog_id,因为狗类的清单明确声明正在创建推断.因此,此列将疫苗接种记录映射到狗.这很好,除了我想在多种类型的动物上分享此额外的列.因此,例如,我想拥有一个可以加入狗或猫的dog_id和cat_id. 作为动物是抽象的,没有DB表,我可以通过流利的语句和/或属性/属性声明来完成此操作? 解决方案 您的Vac
0 2024-01-09
编程技术问答社区
代码优先的实体框架用自定义ID插入数据
当插入带有自定义ID的数据时,我在项目中使用代码优先的EF. 当我尝试使用自定义ID插入数据(例如999)时,EF会忽略它,并将增量ID插入表. 我的模型: public class Address { [Key] public int Id { get; set; } public string FirstName { get; set; } ... } 如何解决此ProbleB? 编辑: 1)如何开始从n中递增,而不是从0? 开始 2)如果我不指定自定义ID,则数据库必须增加并插入.如果我指定自定义ID,则数据库必须插入它.有可能吗? 解决方案 您可以使用以下属性 [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] 在您的课程的钥匙或使用Fluentapi 上 modelBuilder.Entity ()
4 2024-01-07
编程技术问答社区
EF Codefirst获得POCO'的配置
我有一个poco对象(ef code-first) public class ExampleTestOfDataTypes { public string StringProp { get; set; } } 比我的配置类别: public class ExampleTestOfDataTypesConfig : EntityTypeConfiguration { public ExampleTestOfDataTypesConfig() { ToTable("CustomTableName"); this.Property(m => m.StringProp).HasColumnName("CustomString"); } } 当我在配置文件中更改它时,如何获得新的tableName和新的s
0 2024-01-07
编程技术问答社区
使用EF代码优先方法的表没有被映射
我想使用EF code first approach.我添加了数据库,然后生成表.然后我添加了此类 public class Invitation { [Key] public int Id { get; set; } [DefaultValue(false)] public bool State { get; set; } public string Mail { get; set; } public string Tel { get; set; } public string Name { get; set; } public string Qr_code { get; set; } } 我运行以下命令: 添加移民第二 update-database 第二类迁移的Up和Down方
4 2024-01-06
编程技术问答社区
将具有不同关系值的表格转换为Excel列
我有这些表: 类别 CategoryId CategoryTitle ... ICollection Articles 每个类别都可以有几篇文章: 文章 ArticleId ArticleTitle NumberOfComment NumberOfView ... ICollection Reviews 每篇文章都有一些用户的评论: ArticLereView ArticleReviewId ReviewPoint ArticleId ReviewerId 我正在尝试使用 epplus epplus 这是我的ExcelExport类: public class excelExport { public string ArticleTitle { get; set; } public int NumberOfComment { get; set; }
0 2024-01-06
编程技术问答社区
在Entity Framework中以代码为先还原数据库
我在模型中制作了一个,并使用 更新了数据库 Add-Migration sdfgfsd Update-Database 现在我发现我刚刚做出的更改是不必要的. 我想恢复代码和数据库. 我该怎么做? 解决方案 是的 - 它很简单.使用 Update-Database -TargetMigration:zzzz 其中zzzz是要回滚的迁移的名称. 编辑 然后,您需要在zzzz之后删除迁移. 如果要回滚所有迁移,或者只有一个迁移,请使用 update-database -target:0
6 2024-01-05
编程技术问答社区
添加一个迁移的文件名已经存在了
我已经启用了迁移: enable-Migrations -ProjectName ProjectOne -ContextTypeName MyIdentity.Config.MyIdentityContext -MigrationsDirectory Identity\\Migrations 我指定了我的上下文,因为它在一个分开的名称空间中,我指定了目录,因为我想将迁移在其他目录中. 启用这样的迁移后,我在预期位置(Identity \ Migrations文件夹)中获得了预期的配置文件(我删除了种子过程中的注释) Friend NotInheritable Class Configuration Inherits DbMigrationsConfiguration(Of MyIdentityDbContext) Public Sub New() AutomaticMigrationsEnabled = False
实体框架-外键组件...不是类型上的声明属性
我有以下模型 public class FilanthropyEvent : EntityBase, IDeleteable { public int Id { get; set; } public string Name { get; set; } public DateTime EventDate { get; set; } public string Description { get; set; } public decimal Target { get; set; } public decimal EntryFee { get; set; } public bool Deleted { get; set; } public ICollection EventAttendees { get; set; } } public class Attendee : EntityB
8 2024-01-04
编程技术问答社区
Entity Framework Code First流畅的API在for循环中设置字段属性
我首先使用实体​​框架代码来创建数据库表.我的模型课有十个小数小数.目前,我在OnModelCreating方法中设置这样的字段属性: modelBuilder.Entity().Property(p => p.cell_1_1).HasPrecision(18, 2); 由于我有十个字段,因此我正在考虑使用for循环设置此精度属性,例如以下代码: for( int i = 1; i () .Property(p => p.Equals("cell_1_"+i )) .HasPrecision(18, 2); } 但是,上面的代码给我一个语法错误. 是否可以设置这样的精度值? 解决方案 这应该对您有用 - 使用反射在您的实体中获取类型decimal的所有属性,然后构建用于属
4 2024-01-04
编程技术问答社区
在EF Code First中过滤导航属性
我首先在EF中使用代码.假设我有两个实体: public class Farm { .... public virtual ICollection Fruits {get; set;} } public class Fruit { ... } 我的dbcontext就是这样: public class MyDbContext : DbSet { .... private DbSet FarmSet{get; set;} public IQueryable Farms { get { return (from farm in FarmSet where farm.owner == myowner select farm); } } } 我这样做是为了使每个用户只能看到他的农场,而我不必将每个
8 2024-01-04
编程技术问答社区
从EF Code-First DbContext类生成SQL CE数据库
我已经在实体框架代码优先惯例的样式中定义了一组类,并用system.componentmodel.dataannotations属性注释了类属性. 现在,我想从此代码生成一个SQL Server Compact Edition(SCSE)(4.0)数据库. 需要什么代码,需要导入哪些组件? 到目前为止,我已经导入C:\ Program Files(x86)\ Microsoft SQL Server Compact Edition \ V4.0 \ desktop {System.data.data.sqlserverce.dll,System.data.data.sqlServerce.entity \ System.Data.data.data.data.data .sqlserverce.entity.dll} dll文件. 任何指针都赞赏.文章等. 解决方案 我找到了解决方案.关键的是这条代码线: DbDatabase.DefaultConn
0 2024-01-04
编程技术问答社区
如何在Entity Framework代码中首先为身份主键设置起始值?
在我的项目中,我首先使用实体​​框架代码创建Appointments表.当我将整数主键设置为AppointmentNo为[Key]和[Required]时,它以1. 开始使用初始主键创建表. 我希望约会号码从1000开始.我的数据库是SQL Server.请帮我.先感谢您. [DataContract] public class Appointment { [DataMember] [Key] [Required] public int AppointmentNo { get; set; } [DataMember] [Required] public string DoctorUN { get; set; } [DataMember] [Required] public string PatientUN { get; set; } } 解决方案 不可能使用EF注释,但是您可以在迁移中
2 2024-01-03
编程技术问答社区
如何防止DbContext改变数据库?
我正在学习实体框架(当前使用EF6 beta),并且我正在使用现有数据库上的代码第一个模式.实体和DbContext类是使用T4模板自动创建的. 我想防止DbContext在运行时创建/更改任何内容. 我该怎么做? 解决方案 当您执行启用迁移命令时,您将使用文件夹/迁移,您可以在其中找到名为 configuration.cs .在该文件的构造函数中,默认情况下,有一个属性设置为值: AutomaticMigrationsEnabled = false; 将确保您的数据库不会自动迁移,而是通过手动调用每个迁移. 但是,如果您的数据库大于您的域模型,即您只是在已经存在的数据库的一部分上操作,则在应用程序中的某个地方开始(如果它是ASP.NET应用程序,则 application_start 事件处理程序),您需要添加以下代码: Database.SetInitializer(null); 否则,实体框架会抱怨您的域
4 2024-01-03
编程技术问答社区
在Entity Framework Code First中的SQL 'time'类型
我正在尝试在表格中使用实体框架代码的表中创建一个"时间(7)"列.这是我的实体: public class ShiftDetail { public long Id { get; set; } [Required] public int DayOfWeek { get; set; } [Required] [Column(TypeName="time")] public DateTime StartTime { get; set; } [Required] [Column(TypeName = "time")] public DateTime EndTime { get; set; } public long ShiftId { get; set; } public virtual Shift Shift { get; set; } } 您可以看到我正在尝试将列的数据库类型设置为启动
0 2024-01-03
编程技术问答社区
将Entity Framework EDMX转换为Code First的工具
是否有将EDMX转换为代码优先的工具? 我知道有一段时间以来有一个人出现在CTP中,但我找不到与此有关的任何更新. 解决方案 没有这样的工具,因为EDMX提供了更多的功能,这些功能无法翻译成代码优先.唯一可用的工具是 ef Power Tools CTP1 允许从现有数据库中创建代码优先的映射,但它将仅创建数据库的1:1图像=基于数据库命名,没有继承,没有分裂等.电源工具还允许从现有代码中创建读取EDMX - 第一个映射. 其他解决方案 使用EF6工具与Visual Studio 2013或Visual Studio 2012,您可以从数据库中获得选项代码(请参阅下面的屏幕截图) 如果您看不到此选项,则需要安装实体框架6 Visual Studio 2012和2013的工具 http://www.microsoft.com/en-gb/en-gb/download/details.aspx? id = 40762 这不会首先将EDMX转换为代码(根据有问题的要
2 2024-01-03
编程技术问答社区
如何在Code First实体框架中使用视图
我如何首先使用实体​​框架代码中的数据库视图, 解决方案 如果像我一样,您只对来自其他数据库的映射实体感兴趣(在我的情况下是ERP),以将它们与您的应用程序的特定实体联系起来,那么您可以在使用视图时使用视图表(以相同的方式映射视图!).显然,如果您尝试更新该实体,则如果视图无法更新,您将获得异常. 该过程与正常情况(基于表)实体相同: 为视图创建一个POCO类;例如fooview 在DBContext类中添加DBSET属性 使用fooviewConfiguration文件为视图设置另一个名称(使用Totable(" Foo");在构造函数中)或设置特定属性 public class FooViewConfiguration : EntityTypeConfiguration { public FooViewConfiguration() { this.HasKey(t => t.Id);
2 2024-01-02
编程技术问答社区
支持<Database>上下文的模型在数据库创建后发生了变化
错误消息: "自数据库创建以来,备份'通讯录'上下文的模型已更改.要么手动删除/更新数据库,或使用idatabaseInitializer实例调用数据库.数据库,并选择将其与新数据播种." 我试图使用代码优先的功能,以下是我写的: var modelBuilder = new ModelBuilder(); var model = modelBuilder.CreateModel(); using (AddressBook context = new AddressBook(model)) { var contact = new Contact { ContactID = 10000, FirstName = "Brian", LastName = "Lara", ModifiedDate = DateTime.Now, AddDate = DateTime.Now,
4 2024-01-02
编程技术问答社区
Entity Framework CTP5代码优先,WPF-MVV建模
我为我的WPF应用程序设置了所有模型,并且首先使用实体​​框架CTP5代码,以下是示例模型类: public class Task { public int ID { get; set; } public int Index { get; set; } public string Content { get; set; } public int Indentation { get; set; } public DateTime Start { get; set; } public decimal Effort { get; set; } public decimal CompletedEffort { get; set; } public decimal Cost { get; set; } } 推荐建立我的视图模型的推荐方法是什么?我的视图模型将实现InotifyPropertychanged,我不希望模型类具有
8 2023-12-13
编程技术问答社区
在网络服务中使用Code First时出现错误 "System.Data.ProviderIncompatibleException。提供者没有返回一个ProviderManifestToken字符串。"
我首先使用代码.一切正常(插入,更新,选择)都可以使用.当我尝试使用Web服务时,问题出现了.我会收到错误" system.data.providerIncompatibleException:提供商没有返回providermanifestToken字符串.".查看内部异常,我收到此消息"无法确定存储版本;需要有效的存储连接或版本提示.". Web服务代码: /// /// Summary description for UserServices /// [WebService(Namespace = "http://localhost:3955/WebServices/UserServices")] //[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //[System.ComponentModel.ToolboxItem(false)] // To all
10 2023-12-02
编程技术问答社区
首先部署Entity Framework代码
我想我应该在启动项目之前已经考虑过这一点,但是我已经成功地使用了Code-Fort方法构建并测试了一个Mini应用程序,并且可以将其部署到生产Web服务器. . 我已经将文件夹移至我的登台服务器,一切正常.我很好奇是否有建议的部署策略? 如果我对应用程序进行更改,则如果重新启动该应用程序,我不想丢失所有数据. 我应该只从Code-First项目中生成DB脚本,然后以这种方式将其移至我的服务器? 任何提示和指南链接都会有用. 谢谢. 解决方案 实际上数据库初始化器仅适用于开发.将这种代码部署到生产中是遇到一些麻烦的最佳方法.当前,代码优先的方法没有任何数据库Evolution的方法,因此您必须在新版本之后手动向数据库构建更改脚本.最简单的方法是在VS Studio 2010 Premium和Ultimate中使用数据库工具.如果您将拥有一个带有旧模式的数据库,并且具有新模式和VS的数据库将为您准备更改脚本. 其他解决方案 这是我遵循的步骤.
8 2023-11-30
编程技术问答社区