Tag: entity framework 6

是EntityFramework 6中的IDbCommandInterceptor线程是否安全

使用DbInterception add方法注册时,IDbCommandInterceptor实例是否被视为线程安全? 我已经实现了一个符合IDbCommandInterceptor接口的类,并且当调用其中一个执行方法与调用相应执行方法的停止时间相比时,它跟踪命令的开始时间。 我将这些信息存储在私人ivar列表中,需要知道我正在做的事情是否安全。

具有entity framework6的多对多通用更新方法

我在抽象的DatabaseOperations类中有一个用于Entity Framework的通用Update方法: public virtual void Update(T updatedObject, int key) { if (updatedObject == null) { return; } using (var databaseContext = new U()) { databaseContext.Database.Log = Console.Write; T foundEntity = databaseContext.Set().Find(key); databaseContext.Entry(foundEntity).CurrentValues.SetValues(updatedObject); databaseContext.SaveChanges(); } } 但是,这不能处理多对多关系。 通过覆盖TrussSetDatabaseOperations : DatabaseOperations的Update方法可以克服这种多对多更新问题TrussSetDatabaseOperations : DatabaseOperations ,如下所示: public override void Update(TrussSet updatedTrussSet, int key) { if (updatedTrussSet == null) { […]

如何在entity framework中获取一些实体列?

假设我有一个包含超过1000000列的表。 当我使用LINQ To SQL和Entity-Framework所有查询都将用c#编写,如下所示: EFContext.MyTableName.Where(row=>row.column1==someValue) .Select(…) .FirstOrDefault(…) .Any(…) … 如何只获得实体的一些列? 有没有办法只获得1000000列中的第1列和第2列和第3列? 注意: 结果数据的类型应该在选择后保留,例如,如果没有过滤某些列类型的结果是Type1,那么非常重要的是,在过滤之后,结果的类型是Type1,但是被过滤的Type1的那些属性的值应该是null或default。

如何使用对象上下文在Entity Framework中使用批量插入?

我想使用Object Context而不是DbContext来调用entity framework6中的批量插入。我该怎么做? 我想做点什么 readonly ObjectContext obContext : public void BulkInsert(IEnumerable items) where T : class, new() { obContext.BulkInsert(items); } 但我无法做到这一点。

SQLite连接未出现在实体数据模型向导中(vs2015)

我做的是, 1)在vs2015中创建了一个项目(.Net Framework 4.6)2)从Nuget安装了System.Data.SQLite。 实际上System.Data.SQLite(1.0.105.1),System.Data.SQLite.Core(1.0.105.1),System.Data.SQLite.EF6(1.0.105.1),System.Data.SQLite.Linq(1.0.105.1) ,安装了EntityFramework(6.0.0)3)Nuget中的6.1.3更新了EntityFramework 4)尝试从本地Sqlite数据库创建实体数据模型5)重新构建整个解决方案 但是当我尝试创建新的数据库连接时,SQLite连接没有出现在数据源中。 谁有人能解决这个问题?

如何以正确的方式取消异步查询

这是对这个问题的后续问题 。 我正在尝试从我的数据库加载数据,这需要5-10秒,但我希望GUI保持响应,并且它应该是可取消的。 private CancellationTokenSource _source; public IEnumerable Measurements { get { … } set { … } } private async void LoadData() { _source = new CancellationTokenSource(); using (var context = new TraceContext()) { Measurements = null; Measurements = await context.Measurements.ToListAsync(_source.Token); } } private void Cancel() { if (_source != null) _source.Cancel(); } public […]

我将如何使用带有.net 4.0的Entity Framework 6的breeze

我使用nuget安装了我的4.0 MVC项目Entity Framework 6(以启用ode首次迁移)。 然后我尝试安装breeze包Breeze.Server.ContextProvider.EF6。 但是我错过了微风的assembly参考错误。

自定义DbContext生成器

对于数据库第一次设计,创建EDMX生成DbContext和poco模型T4 (.tt)模板文件。 我成功地能够自定义Model.tt文件,使其生成具有Pascal套接字类名称和属性名称的POCO类,以及Pascal案例中的poco类文件名,这与其余代码的编码标准相吻合。 我试图解决的问题是,当我创建一个EDMX时,我必须编辑Model.tt文件,而不是我试图查看是否有任何方法来自定义tt文件生成器并添加代码修改,以便在创建EDMX时自动实现pascalcasing规则。 我不确定这是否可行。 请建议。

什么是Visual Studio 2017中的entity framework’数据库优先’的替代品

简单的问题 – 我在Visual Studio 2017工作,虽然我知道EF中的’数据库优先’方法已经消失,但我想知道更换的是什么。 我特别想要做的是从现有数据库生成类。 我明白这一点: EntityFramework Reverse POCO Generator – 这是正确的选择,还是VS2017中我应该使用的东西? 我认为这将是明显的信息,也许我正在寻找错误的地方…… 注意:我有一个ASP.NET Core项目,但我没有使用EF Core。 我在完整的.NET框架和EF6上使用ASP.NET Core。

更改数据库迁移中的存储过程EF 6 Code First – 如何为参数默认传递null

我正在使用空迁移来更新我的数据库中的存储过程。 存储过程是在数据库的初始创建中添加的自定义存储过程。 我在DbMigration类中发现了’AlterStoredProcedure’方法,这可以更新存储过程,但是我必须通过存储过程的参数,我想设置一个布尔值的默认值,并将一些int设置为null,但我似乎无法让这个工作。 AlterStoredProcedure( name: “[dbo].[FT_People_PersonFullTextSearch]”, parametersAction: p => new { searchTerm = p.String(600), isArchived = p.Boolean(false), isActive = p.Boolean(null), genderFilter = p.Int(null), rankingFilter = p.Int(null) }, body: “the body of my stored proc….”); 上面的代码产生 ALTER PROCEDURE [dbo].[FT_People_PersonFullTextSearch] @searchTerm [nvarchar](600), @isArchived [bit] = 0, @isActive [bit], @genderFilter [int], @rankingFilter [int] AS BEGIN 代替 ALTER PROCEDURE […]