ef-code-first相关内容
我首先在我的网站上使用实体框架代码,我只是想知道是否有任何方法可以调试迁移代码.你知道,比如设置断点之类的. 我正在使用包管理器控制台使用 Update-Database 更新数据库. 谢谢 解决方案 我知道 EF Code First Migrations 是相对较新的工具,但不要忘记您仍在使用 .NET. 所以你可以使用: if (System.Diagnostic
..
一年前问的这个问题很相似:实体框架 4 是否支持生成器像 NHibernate 一样的 id 值? 但我想知道的是,代码优先 CTP 是否添加了对身份生成策略的支持.如果没有,有没有人知道 EF 中的一个很好的扩展点来实现类似的东西? 我目前正在使用使用 GUID 作为标识符的模型类.当使用 EF 插入时,它们会保留它们的 Guid.Empty 初始值.我知道您可以将数据库中的列的默认
..
我想定义一个供 EF5 使用的枚举,以及一个相应的查找表.我知道 EF5 现在支持枚举,但是开箱即用,它似乎只在对象级别支持这一点,并且默认情况下不会为这些查找值添加表. 例如,我有一个 User 实体: 公共类用户{int ID { 获取;放;}字符串名称 { 获取;放;}用户类型 用户类型 { 获取;放;}} 还有一个 UserType 枚举: 公共枚举 UserType{成
..
DbContext 上没有 Detach(object entity). 我可以先分离 EF 代码上的对象吗? 解决方案 如果您想分离现有对象,请遵循 @Slauma 的建议.如果您想在不跟踪更改的情况下加载对象,请使用: var data = context.MyEntities.AsNoTracking().Where(...).ToList(); 正如评论中提到的,这不会完
..
如何构建查询以检索随机行? 如果我用 SQL 编写它,那么我会在 newid() 上放置一个 order by 并从顶部切掉 n 行.无论如何要先在 EF 代码中执行此操作? 我尝试创建一个使用 newid() 的查询并使用 DbSet.SqlQuery() 执行它.虽然它有效,但它不是最干净的解决方案. 此外,尝试检索所有行并按新的 guid 对它们进行排序.虽然行数比较少,但
..
有人可以提供一些建议或指出一些有助于做出此决定的博客/文章吗?代理对我来说似乎很陌生,我很犹豫要不要使用它们.我喜欢通过在我的模型中使用虚拟属性来控制延迟加载的能力,但这几乎是我能看到的所有好处.我的应用程序是一个简单的 MVC Web 应用程序,当实体经历状态更改时,我不需要将任何挂钩连接到上下文中. 无论如何,这是我现在非常有限的利弊列表,如果我对其中任何一个不满意,请告诉我. 优
..
我只是考虑在我们的项目中使用 EF 迁移,尤其是在版本之间的生产中执行架构更改. 我已经看到有一个 API 可以使用 DbMigration 类在运行时执行这些迁移,但我找不到任何具体示例. 理想情况下,我希望每个数据库更改都有一个 DbMigration 文件,并且这些更改在从当前版本到最新版本的应用程序启动时自动应用. 解决方案 有一个 Database Initializ
..
我们希望使用实体框架代码优先来使用一对一的可选关系.我们有两个实体. 公共类 PIIUser{公共 int Id { 获取;放;}公众号?LoyaltyUserDetailId { 获取;放;}公共 LoyaltyUserDetail LoyaltyUserDetail { 获取;放;}}公共类 LoyaltyUserDetail{公共 int Id { 获取;放;}公双?可用点{得到;放;}公
..
我将 Entity Framework 5 与 Visual Studio 与 Entity Framework Power Tools Beta 2 结合使用,对中等大小的数据库(约 100 个表)进行逆向工程. 遗憾的是,导航属性没有有意义的名称.例如,如果有两个表: CREATE TABLE Contacts (ContactID INT IDENTITY (1, 1) NOT
..
当我使用默认连接字符串(从 app.config 读取)创建上下文时,会创建数据库并且迁移工作 - 基本上一切正常.而当以编程方式创建连接字符串时(使用 SqlConnectionStringBuilder): 当数据库不存在时不创建数据库(场景A); CreateDbIfNotExists() 创建最新版本的数据库模型,但迁移机制未被调用(场景B). 在 A 中,当我希望访问数据库
..
我的数据库中有一个名为 SEntries 的表(参见下面的 CREATE TABLE 语句).它有一个主键,几个外键,没有什么特别之处.我的数据库中有很多类似于那个表的表,但由于某种原因,这个表在 EF 代理类上有一个“鉴别器"列. 这是在 C# 中声明类的方式: 公共类 SEntry{公共长 SEntryId { 获取;放;}公共长 OriginatorId { 获取;放;}公共日期时间
..
我有两个 POCO 课程: 订单类: 公共类订单{公共 int Id { 获取;放;}公众号?报价 ID { 获取;放;}公共虚拟报价单 { get;放;}....} 引用类: 公开课报价{公共 int Id { 获取;放;}公共虚拟订单订单{获取;放;}....} 每个Order 可以由一个或零个引用构成,并且 每个报价可能导致订单. 所以我有一个“一或零"到“一或零"关系
..
我在 MVC 3 应用程序中使用实体框架 4.1.我有一个实体,其中的主键由两列(复合键)组成.这在另一个实体中用作外键.如何建立关系?在正常的场景中,我们使用: 公共类分类{公共字符串 CategoryId { 获取;放;}公共字符串名称 { 获取;放;}公共虚拟 ICollection产品{得到;放;}}公开课产品{公共 int ProductId { 获取;放;}公共字符
..
我在 Entity Framework Code First 之上使用通用存储库模式.一切正常,直到我需要在查询中包含更多实体.我必须成功包含一个实体,但现在我不知道如何包含多个实体.看看我到目前为止有什么: public IQueryableGetQuery() where TEntity : 类{var entityName = GetEntityName();return _objectC
..
我首先使用实体框架代码.我覆盖 DbContext 中的 SaveChanges 以允许我执行“软删除": if (item.State == EntityState.Deleted && typeof(ISoftDelete).IsAssignableFrom(type)){item.State = EntityState.Modified;item.Entity.GetType().Ge
..
我正在进入实体框架,但我不确定我是否遗漏了代码优先方法中的一个关键点. 我正在使用基于 https://genericunitofworkandrepositories.codeplex.com/ 并创建了我的实体. 但是当我尝试访问或修改实体时,我遇到了以下问题: System.InvalidOperationException: 实体类型 Estate 不是一部分当前上下文的
..
有没有“优雅"的方式给特定属性一个默认值? 也许是通过 DataAnnotations,比如: [DefaultValue("true")]公共布尔活动{得到;放;} 谢谢. 解决方案 可以通过手动编辑代码先迁移: public override void Up(){AddColumn("dbo.Events", "Active", c => c.Boolean(nullabl
..
我使用的是实体框架 5.0 代码优先; 公共类实体{[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]公共字符串 EntityId { 获取;放;}公共 int FirstColumn { 获取;放;}公共 int SecondColumn { 得到;放;}} 我想让 FirstColumn 和 SecondColumn 之间的
..
我的理解是 [NotMapped] 属性直到 EF 5 才可用,它目前在 CTP 中,所以我们不能在生产中使用它. 如何将 EF 4.1 中的属性标记为忽略? 更新:我注意到了一些奇怪的事情.我让 [NotMapped] 属性起作用,但由于某种原因,EF 4.1 仍然在数据库中创建一个名为 Disposed 的列,即使 public bool Disposed { get;私人订制;}
..
遵循Pluralsight“入门"的“代码优先建模"部分通过 Julie Lerman 的 Entity Framework 5" 课程,我创建了两个具有一对零或一关系的 POCO 类:一个父类(用户)和一个可选的 子级 (UserDetail). User 和 UserDetail 数据模型图(点击查看). 注意图中的UserId 属性是UserDetail 的主键和外键. 相
..