Tag: entity framework

如何使用Entity Framework Code-First方法将double 数组存储到数据库

如何使用Entity Framework Code-First将数组的双精度数据存储到数据库中,而不影响现有代码和体系结构设计? 我查看了Data Annotation和Fluent API,我还考虑将double数组转换为字节字符串,并将该字节存储到自己的列中的数据库中。 我无法访问public double[] Data { get; set; } public double[] Data { get; set; } 使用Fluent API的属性,我得到的错误消息是: double[]类型必须是不可为空的值类型才能将其用作参数’T’。 存储Data的类成功存储在数据库中,以及与此类的关系。 我只缺少Data列。

Code First与Database First

我基于现有数据库创建了一个entity framework模型,然后从模型中生成了POCO实体。 我的web.config中的连接字符串不是entity framework,它只是标准连接字符串(它缺少CSDL,SSDL,MSL引用)。 我可以编译我的应用程序,但是当我运行时,我收到此错误: 如果在Code First模式下使用,使用T4模板为Database First和Model First开发生成的代码可能无法正常工作。 要继续使用Database First或Model First,请确保在执行应用程序的配置文件中指定了Entity Framework连接字符串。 要使用从Database First或Model First生成的这些类,使用Code First添加任何其他配置,使用属性或DbModelBuilder API,然后删除引发此exception的代码 我的问题是,在我的代码中,它实现了POCO来自自动生成,我怎样才能让它像Code First一样? 我不想在我的连接字符串中引用CSDL等。

事务范围超时10分钟

我在C#中运行了一个长期的TransactionScope 。 我告诉范围它应该有很长的时间跨度,但我仍然会超时。 什么可能导致这个? TransactionOptions transactionOptions = new TransactionOptions(); transactionOptions.IsolationLevel = IsolationLevel.ReadCommitted; transactionOptions.Timeout = TimeSpan.MaxValue; using (var ts = new TransactionScope(TransactionScopeOption.Required, transactionOptions)) { DoLongCode(); }

OData错误:URI中指定的查询无效。 该属性不能在查询选项中使用

我正试图让OData端点启动并正常工作,我遇到了这个错误,即使谷歌也没什么可说的。 我已经创建了一个Entity Framework EDMX上下文(数据库优先),让设计者从中生成2个模型。 一切都运行正常,除了$filter查询失败。 我可以做得很好: http://localhost:27164/Projects(6587660) 它检索主ID为6587660的项目。 但是任何$filter请求都是这样的: http://localhost:27164/Projects?$filter=ProjectID eq 6587660 将失败并出现以下错误: URI中指定的查询无效。 属性“ProjectID”不能在$ filter查询选项中使用。 我也尝试过查询其他属性,字符串属性。 同样的错误。 我已经检查过EF生成的模型在属性上没有任何属性,但它们没有。 这是我在WebApiConfig.cs模块中的Register方法: using System.Web.OData.Builder; using System.Web.OData.Extensions; public static void Register(HttpConfiguration config) { // Web API configuration and services // Configure Web API to use only bearer token authentication. config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); ODataModelBuilder builder = new ODataConventionModelBuilder(); builder.EntitySet(“Projects”); […]

使用entity framework限制查询大小

这是一个简单的问题(我认为),但我无法找到解决方案。 我知道对于其他类型的查询,您可以添加一个限制子句,使查询只返回那么多结果。 这可能是实体查询吗? var productQuery = from b in solutionContext.Version where b.Product.ID != 1 && b.VersionNumber == b.Product.ActiveNumber orderby b.Product.LastNumber select b; 我只是想这样做,所以这个查询只返回25个版本对象。 谢谢你的帮助。

EF中IDatabaseInitializer的正确用法是什么?

我有一个自定义DatabaseInitialiser,如下所示 /// /// Implements the IDatabaseInitializer to provide a custom database initialisation for the context. /// /// TContext is the DbContext public class ParikshaDataBaseInitializer : IDatabaseInitializer where TContext : DbContext { /// /// The method to Initialise the database. /// Takes care of the database cannot be dropped since it is in use problem while […]

如何正确分析entity framework?

为了从EF 4.1获得单个回调,我可以编写的最小代码量是多少,它提供了以下内容: OnSQLExecuted(DbCommand cmd, DateTime start, double durationMS, string stacktrace) 目前我们使用的是令人讨厌的黑客攻击,这似乎是在泄露性能,我很好奇我们如何能够在对应用程序产生最小影响的情况下实现此回调。 我们可以通过黑客入侵 Mini Profiler来解决这个问题 – 最后我们更改了Database.DefaultConnectionFactory但是默认工厂无法使用,这意味着您不能同时运行两个分析工厂。 所以我们采取了更积极的路线。 常用的技术非常简单,您实现: DbProviderFactory , IDbConnectionFactory , DbProviderServices , DbConnection , DbCommand和DbDataReader ,它们拦截调用和配置文件。 到目前为止,很容易……但是当你试图连接它时它会变得混乱: try { // ensure all the factories are loaded DbProviderFactories.GetFactory(“…”); } catch (ArgumentException) { } Type type = typeof(DbProviderFactories); DataTable table; // SUPER UGLY – Can […]

执行回滚 – 存储库集成测试

我想实现我的Entity Framework驱动的存储库的集成测试。 问题是如何在测试完成后回滚数据库状态。 目前,我计划在测试SetUp上启动事务,并在测试TearDown时将其回滚。 除手动数据库清除外还有其他解决方案吗?

EntityFramework按ID获取对象?

Generics是否可以在不知道类型的情况下从我的EntityFramework中获取对象? 我正在考虑以下方面的事情: public T GetObjectByID(int id) { return (from i in myDatabase.T where i.ID == id select i); } 那可行吗? 我可以使用Reflection以某种方式获取T.GetType().Name并将其用于表吗? 编辑 另一个问题是,并非所有可用的表都使用“ID”作为其唯一的列名。

entity framework+存储库+工作单元

我正在考虑使用EF 4开始一个新项目并浏览一些文章,我发现了一些关于EF的文章和存储库模式以及工作单元 ( http://tdryan.blogspot.com/2011/03/another-entity-framework-4-repository_15.html和http://blogs.msdn.com/b/adonet/archive/2009/06/16/using -repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx ) 我正在使用第一个(第1部分,第2部分和第3部分)。 它们非常相似。 在这种情况下,我是新手。 我在这两个post之间感到困惑。 我已经创建了所有内容,但我不知道如何开始使用上下文并添加一些实体。 我发布了第二个链接,因为发布了实现它的方法。 ObjectContext派生自IUnitOfWork ,所以我很难选择哪两个更好用。