问题标签 [code-first]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4148 浏览

c# - Code-First EF4 中的多对多关系

您如何表示 EF4 Code-First CTP3 中的多对多关系?

例如,如果我有以下课程:

在数据库中有一个 UserProfiles 表,其中包含用户的 FK 和配置文件的 FK。我怎样才能映射这个?

编辑:我了解当前如何在 上使用ICollection<User>属性进行映射Profile,但是当它应该是“用户有很多个人资料”时,我真的不想拥有相反的导航属性。

0 投票
2 回答
6666 浏览

c# - Entity Framework v4 纯代码连接字符串

我最近开始在我正在处理的一些项目中使用 EF v4 Code Only 库。但是,我遇到了一些障碍。我似乎无法找出连接字符串的正确格式。我使用以下代码来构建连接字符串:

但是,使用它会导致以下错误:

看到我没有任何元数据......因为我只使用代码,所以我有点束缚。非常感谢任何见解。

构建器类生成的连接字符串如下:

provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=ASM_Testing;Integrated Security=True;Pooling=False"


工作示例(基于接受的答案)

必须使用 ContextBuilder 来创建使用纯代码模式的上下文的任何实例。对于那些正在寻找同一问题的答案的人来说,这是一个工作示例:

0 投票
3 回答
24763 浏览

mysql - 将 MySql 与 Entity Framework 4 和 Code-First Development CTP 一起使用

我想我会尝试一下 Scott Guthrie 在 Entity Framework 4 的代码优先开发的最新帖子。我没有使用 Sql Server,而是尝试使用 MySql。以下是我的 web.config 的相关部分(这是一个 Asp.Net MVC 2 应用程序):

就像教程一样,我希望 EF4 自动为我生成数据库。相反,它会引发 ProviderIncompatibleException,并带有一个内部异常,抱怨 NerdDinners 数据库不存在。

很公平; 我去为它创建了 MySql 数据库,只是为了看看事情是否可行,并得到了另一个 ProviderIncompatibleException 。这一次,“提供者不支持DatabaseExists”。

我承认,这是我第一次真正深入研究实体框架(我主要使用 Linq to Sql),而且这一切都在上周才发布的 Code-First CTP 上运行。也就是说,我在这里做错了什么,还是可以解决的已知问题?

0 投票
1 回答
2287 浏览

c# - Entity Framework 4 Code First 自定义表映射 Fluent API 问题

首先是一些简短的背景:我有一个使用 Entity Framework v1 的现有 ASP.NET MVC 1 应用程序,它工作得相当好,但因为有 40 个表,所以 .edmx 变得笨拙并且容易与 Visual Studio 2008 设计器一起损坏。我想做的是看看迁移 DAL 以使用 EF4 和 Code-First 是否可行。

最初,我试图模拟简单的父/子关系,但没有走得太远。我有 2 个表ClientAddress它们对应于以下 POCO 类:

此外,我有一个DbContext类,我在其中使用流利的 api 定义关系:

因此,在我的控制器中,我可以将以下内容作为模型返回:

它按预期从数据库返回 10 个结果,除此之外它返回一个默认Address对象Client.WorkAddressand Client.HomeAddress

我的猜测是,要么我设置ObjectContext.ContextOptions.LazyLoadingEnabled = true在错误的位置,要么(更有可能)我没有得到Client正确Address的关系。

0 投票
3 回答
7721 浏览

entity-framework - 实体框架 4 代码优先的优缺点

我想知道使用 EF4 Code-First 方法的优缺点。我们能否复制 EF4 生成的类提供的所有功能,例如延迟加载、加载相关实体等?

谢谢

0 投票
2 回答
4240 浏览

entity-framework - Code-First Entity Framework - error creating SQL CE DB

I have been using Entity Framework CTP with Code-First as in this tutorial by Scott Guthrie and another by Scott Hanselman (can't post the link, but google "Simple Code First with Entity Framework 4 - Magic Unicorn Feature CTP 4"). This is working perfectly for the main MVC application, but I am now trying to add a testing project, that uses a separate SQL CE Database.

I have added the following to the App.Config file:

However when I try to run the tests it throws the following error when trying to create the database:

Test method MyProjet.Tests.Administration.ModlelTests.Business.TestGetBusinessesList threw exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlServerCe.SqlCeProviderServices' threw an exception. ---> System.Security.VerificationException: Operation could destabilize the runtime.

With the following stack trace:

System.Data.SqlServerCe.SqlCeProviderServices..ctor() System.Data.SqlServerCe.SqlCeProviderServices..cctor() System.RuntimeFieldHandle.GetValue(RtFieldInfo field, Object instance, RuntimeType fieldType, RuntimeType declaringType, Boolean& domainInitialized) System.Reflection.RtFieldInfo.InternalGetValue(Object obj, Boolean doVisibilityCheck, Boolean doCheckConsistency) System.Reflection.RtFieldInfo.InternalGetValue(Object obj, Boolean doVisibilityCheck) System.Reflection.RtFieldInfo.GetValue(Object obj) System.Data.SqlServerCe.ExtensionMethods.SystemDataSqlServerCeSqlCeProviderServices_Instance_GetValue() System.Data.SqlServerCe.ExtensionMethods.SystemDataSqlServerCeSqlCeProviderServices_Instance() System.Data.SqlServerCe.SqlCeProviderFactory.System.IServiceProvider.GetService(Type serviceType) System.Data.Common.DbProviderServices.GetProviderServices(DbProviderFactory factory) System.Data.Common.DbProviderServices.GetProviderServices(DbConnection connection) System.Data.Entity.ModelConfiguration.Internal.Configuration.CodeFirstCachedMetadataWorkspace.GetMetadataWorkspace(DbConnection storeConnection) System.Data.Entity.Infrastructure.DbModel.CreateObjectContext[TContext](DbConnection existingConnection) System.Data.Entity.Internal.LazyInternalContext.InitializeFromModel(DbModel model) System.Data.Entity.Internal.LazyInternalContext.InitializeContext() System.Data.Entity.Internal.InternalContext.Initialize() System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) System.Data.Entity.Internal.Linq.EfInternalQuery1.Initialize() System.Data.Entity.Internal.Linq.EfInternalQuery1.Include(String path) System.Data.Entity.Infrastructure.DbQuery`1.Include(String path) MyProjet.Areas.Administration.Models.BusinessModel.GetBusinesses() in D:\projects2010\MyProjet\MyProjet\Areas\Administration\Models\BusinessModel.cs: line 47 MyProjet.Tests.Administration.ModlelTests.Business.TestGetBusinessesList() in D:\projects2010\MyProjet\MyProjet.Tests\Administration\ModlelTests\Business.cs: line 45

I have tried replacing the existing MyData connection string in the MVC application, and it works fine. It only causes this problem when this is added to the Testing project. Additionally the testing project works without problem when pointed at an SQL or SQL Express Database.

Have been struggling with this for a while now, and just can't figure it out. I am sure I have overlooked something simple.

0 投票
1 回答
458 浏览

entity-framework-4 - 如何在 Entity Frame 4.0 Code First CTP4 中为非主键映射集合?

我在尝试映射现有的旧数据库时遇到问题。在这个例子中,一个国家有很多城市。

问题是 City 表的外键不是 Country 表的主键

表定义

我正在尝试做这样的事情,但我得到了例外。

“导航属性 'Country' 到连接表 'CD_Country' 的映射无效。'Test_SOLEF.City' 类型的每个关键属性必须在映射中恰好包含一次。”

0 投票
1 回答
804 浏览

entity-framework - Entity Framework 4 - Code First 不将继承的表与基表分开存储

使用 EF Code First CTP 4,我创建了一个简单的项目。该项目由 2 个类组成,一个继承自另一个。

我希望将数据存储在单独的表中,但 EF 4 的默认设置是将这两个实体映射/存储在同一个表中。

使用.ToTable(),我可以更改此行为,但这样做会产生副作用:当我保留 Inherited 对象时,EF 不会保留基类上的公共值(例如 Id)。

我确定我要在映射中设置一些信息,但不知道是哪个。

0 投票
2 回答
1075 浏览

c# - 实体框架 CTP4 - 跨模式的外键映射无法正常工作。漏洞?

我对具有不同模式中其他表的外键的表有问题。

例如,SchemaA 中的 TableA 对 SchemaB 中的 TableB 有一个外键。当 CTP4 创建数据库时,它没有创建从 TA 到 TB 的外键,而是创建了第三个表“TableA_TableB”,其中包含 TableA_ID 和 TableB_ID 列,就好像它认为应该是多对多关系一样。

如果我从上面的代码中删除 .ToTable.. ,它会正确创建表。

我试图寻找解决方案,但找不到任何东西。知道我做错了什么,还是这是一个错误?

0 投票
1 回答
146 浏览

c# - 领域建模问题

我正在处理的站点具有用户和站点的概念。用户可以加入全球站点并在 (www.globalsite.com/minisite) 内创建迷你站点。用户还可以关注其他用户创建的其他迷你站点。想一想,如果 Twitter 允许您使用一组凭据加入并创建不同的帐户,一个用于@personal 使用,@business 使用等。

我正在使用 EF CTP4 并首先使用代码。我只是不确定我是否正确设计了我的模型。

这是我的映射:

这是正确的还是应该以不同的方式建模?我曾经使用以下方法手动映射关系:

语法,但现在我已经升级到 CPT4,它不再有效。我希望 EF 在名为 SiteFolling_UserFollowing 的数据库中创建一个具有 SiteId 和 UserId 的关系表,但它创建了一个带有 SiteId(PK) 和 UserId(FK) 的 Site_User 表,一个带有 Follow_Id(PK) 和 Site_Id(FK) 的 Follow_Site 以及一个 Follow_User具有 Follow_Id(PK) 和 User_Id(FK) 的表。

任何指导都会很棒,谢谢!