我正在使用Visual Studio 2015在Windows上使用.Net Core、Entity Framework和MySQL 5.7创建一个应用程序。我在VS2015中使用EF为控制台应用程序创建了新的简单.net核心项目。我的数据模型由单一类型Article组成,其中包含ID(int)和Body(string)字段。创建数据库时,请执行以下操作:
> dotnet ef migrations add initial_migration
> dotnet ef databas
作为EF 6.1到EF Core 2.0迁移的一部分,我添加了一个简单的测试来检查并发令牌是否以同样的方式工作。但我注意到,这取决于底层数据库提供程序:它适用于SqlServer,但不适用于MS InMemory数据库
实体类非常简单:
public class AcademicTermDate
{
public int AcademicTermDateID { get; set; }
public DateTime StartDate { get; set; } //but
我不确定这是否是一个关于实体框架的问题,或者是关于audit.net库如何工作的问题,但我猜是关于我如何使用EF执行更新的问题。我的目标是只捕获记录的实际更改,但它将所有内容都捕获为更改,即使新旧值相同
基本上是尽可能地简化它,如果我这样做的话
var existing = context.Appl.FirstOrDefault(a => a.Id == id);
context.Appl.Update(existing);
context.SaveChanges();
(不做任何更改)
我使用此代码设置了一个通用存储库以进行更新
private void AttachIfNot(TEntity entityToActive)
{
if (_dbContext.Entry(entityToActive).State == EntityState.Detached)
{
_dbSet.Attach(entityToActive);
}
}
private void UpdateEntity(TEntity entityToUpdate)
{
我有一个父-子关系,我展开它的目的是给一个实体的所有后代
现在,我想在一个实体上放置一个导航属性,该实体是其所有子体的列表
CREATE TABLE Thing (
ThingId int NOT NULL PRIMARY KEY,
Name varchar(2) NOT NULL,
ParentId int NULL
)
CREATE VIEW ThingDescendantOrSelf
AS
;WITH cteThing AS (
SELECT ThingId
我有一个非常简单的存储过程:
CREATE PROCEDURE [dbo].[ClearIterations]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON
delete from iterations
END
GO
从EF调用时,不调用它。我没有发现任何错误:
pu
我希望电影、演员、导演、用户等实体都有一个图像,并且一个图像只属于一个实体。我将它们定义并配置为-
型号:(简化)
公共类电影
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共映像映像{get;set;}
}
公共级演员
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共映像映像{get;set;}
}
//控制器、用户等的定义类似
公众阶级形象
{
公共int Id{get;set;}
公共字符串Base64{get;set;}
我正试图通过EF Core(包版本3.1.8)的代码优先迁移将三列添加到现有表中。当我运行addmigration-c-o时,它抛出了这个错误(以及大量堆栈跟踪…):
真的很困惑。这是我今天添加的第四次迁移,以前的迁移都没有这个问题
此迁移应添加三列、这些列的预定义行的数据,并向newColumn1添加默认值约束。列数据类型:
newColumn1:bit,默认为0
newColumn2:nvarchar(50)
newColumn3:nvarchar(50)
添加故障迁移之前的我的实体:
我有一个抽象超类,它包含一个[Key]字段。
然后,该类被两个不同的类扩展,它们共享这个[Key]字段,但也有一些自己的字段
但问题是,当我为这两个扩展类创建2个DbSet对象时,它们被放在同一个表中,它们的字段被合并到该表中。
因此,在我的上下文中类中,我定义了以下内容:
DbSet<EmployeeAccount> EmployeeAccounts;
DbSet<PatientAccount> PatientAccounts;
及
公共类PatientAccount
我正在尝试设置一个实体框架类,该类有4个字段链接回相同类型的其他字段或为空。我的班级是这样的:
public class Patch : EntityBase
{
[Key]
public int PatchId { get; set; }
[ForeignKey("NorthPatchId")]
public virtual Patch NorthPatch { get; set; }
[ForeignKey("Sout
据我所知,以下代码应该生成一个只包含RouteId、RouteNo和ShipId的查询
然而,我得到:
SELECT v.route_id, v.route_no, v.tow_id, v.analysis_complete, v.checks_complete, v.cpr_id, v.date_created, v.date_last_modified, v.factor, v.fromportname, v.instrument_data_file, v.instrument_id, v.
我在测试设置的单元测试中使用以下代码:
var simpleEntity = new SimpleEntity();
var complexEntity = new ComplexEntity
{
JoinEntity1List = new List<JoinEntity1>
{
new JoinEntity1
{
JoinEntity2List = new List<JoinEntity2>
执行迁移时出错。
异常:目录名。。。无效启动项目中是否有DBContext类和迁移?在使用单独的项目进行迁移和web应用时,我也遇到了同样的错误。EF项目正在从web项目中查找一些设置,在VS 2015中一切正常。升级到VS 2017后,某些内容发生了更改,我的设置文件路径不再有效,导致“目录名…无效”错误。修复路径后,一切正常。为什么使用1.0.2版而不是1.1.x版?我将entity framework版本更新为1.1版,但问题仍然存在。您能告诉我是哪个目录吗?
我有两个表,它们首先是使用实体框架核心代码创建的。
应用程序用户及其颜色设置。创建新用户时,还会生成新的颜色设置。但当我保存时,会出现以下错误:
INSERT语句与外键约束冲突
“FK_ColorThemeSetting_AspNetUsers_SettingsOwnerId”。冲突
发生在数据库“MyDb”表“dbo.AspNetUsers”列“Id”中。
声明已终止
我认为EF试图从外键id添加一个新用户。如何防止这种情况?
添加新的颜色设置:
//user and appUser are
我的模型中可能有一些错误,我无法找出,因为在尝试进行迁移时出现以下错误:
“在类程序上调用方法'BuildWebHost'时出错。在没有应用程序服务提供程序的情况下继续。错误:实体类型为'MapeArticulProvider'的字段'k_uBackingField'为只读,因此无法设置。”。
无法创建“NSideoContext”类型的对象。请将“IDesignTimeDbContextFactory”的实现添加到项目中,或参阅以获取设计时支持的其他模式。”
实体:
[Table("Mapeo
我有一个关于在EF-Core中编辑迁移文件的问题
示例:我使用单独的迁移为每个表创建了3个表:AddTable1,AddTable2,AddTable3
几天后,我决定将Table1中status列的类型更改为int,而不是string
更新AddTable1迁移文件、删除数据库并执行updatedatabase命令后,该列仍使用string类型定义
我注意到,尽管我编辑了表1迁移文件,但所有.Designer.cs文件仍在使用字符串类型作为状态列
我复制了AppDbContextModelSn
我目前正在开发一个代码库,我想在其中添加一些新的实体和相应的自有实体。因为,在代码库的其他部分,我将不涉及,UseLazyLoadingProxies被调用;我收到以下例外情况:
System.InvalidOperationException:实体类型“FooOwner”上的导航属性“Foo”不是虚拟的。UseLazyLoadingProxies要求所有实体类型都是公共的、未密封的、具有虚拟导航属性,并且具有公共或受保护的构造函数
如果我将该属性标记为虚拟,则拥有的实体进入一个新表;我也不想要
我有一个类库,它为EntityFrameworkCore提供了一些可重用的sugar,目前它的目标是netstandard2.0;netstandard2.1
我有一些项目引用了这个类库,其中大多数是targetnetcore,但也有一些是targetnet48
更新对net50和EFCore 5.0的引用,我发现EFCore 5.0瞄准netstandard2.0/net48
如果我希望我的类库同时被net48和net50使用,我相信我必须:
将Microsoft.EntityFramewo
使用实体框架核心,我有以下查询:
var avgDuration = await projects.AverageAsync(x => x.Duration);
当枚举projects为空时,我得到以下错误:
InvalidOperationException: Sequence contains no elements.
是否有一种方法可以AverageAsync在枚举为非元素时不引发异常
不应该只返回null
是否有一种方法可以AverageAsync在枚举为非元素时不引发异常
我将我的web api从.netcore2.1升级到3.1,并将所有nuget软件包更新到最新版本。
现在,我的api抛出以下错误
{"StatusCode":500,"ErrorMessage":"Internal server error: Method 'get_Info' in type 'Microsoft.EntityFrameworkCore.SqlServer.Infrastructure.Internal.SqlServerOptionsExtension'
from ass
有一个客户可以访问我们的IP地址,所以我们可以连接他们服务器中的数据库
数据库服务器内部Ip;192.168.31.31
其IP地址的外部IP地址;200.251.xx.xx
他们说我们已经配置了防火墙,允许您访问mysql正在监听的3306端口
现在我需要用efcore来保存这个exist数据库,并想知道如何设置一个connectin字符串
Scaffold-DbContext "server=200.251.xx.xx;port=3306;user=user;password=pa
使用代码优先的方法,使用迁移创建数据库和表。默认情况下,它将创建DBO作为模式,需要在创建DB和表时独立地考虑架构名称,而不考虑硬代码作为模型构建的一部分。
模型建立完成后,是否可以在部署时考虑配置中的架构名称,同时考虑表创建/更改…/P>
我对实体框架相当陌生,在遇到这个错误之前,一切都进展顺利。我的代码试图使用SaveChanges()保存父表的子表,但出现以下错误:
在上一个操作完成之前,在此上下文上启动了第二个操作。这通常是由同时使用同一DbContext实例的不同线程引起的
此消息似乎与异步调用有关,必须使用wait-savechangessync()。但是,我没有调用异步版本的SaveChanges()方法,但仍然得到一条线程错误消息
我的代码相当简单:
public void CreateRange(IList<
我首先在MySql中使用EF核心(V5.0.5)代码。对于实体中的某些属性,我需要小数位数大于2的十进制值。例如,我在ientitypeconfiguation-类中定义了
builder.Property(dt => dt.Quantity)
.HasPrecision(18, 10);
MySql数据库列生成正确,但保存时所有值都被截断为小数点后2位。我在github中找到了一些关于旧EF版本和SQLServer的提示,以及一些与此相关的提示。但这个问题在几个版本之前就
我收到错误消息,因为在dot net core 1.1中实现实体框架时,由于其保护级别,CS0122“NotNullAttribute”无法访问
公共类DataContext:DbContext
{
公共数据上下文([NotNullAttribute]DbContextOptions选项):
基本(选项)
{
}
}
不要使用NotNullAttribute,而是在构造函数内部进行验证,并抛出一个NullArgumentExceptionThank供您提出建议。。
我正在开发一个基于ASP.NET Core 2.1和EntityFrameworkCore 2.1.1的Web应用程序。除了其他类型的测试外,我还经常对Web.Api进行一些集成测试
由于测试数据相当复杂,我基于迁移数据库的一个片段生成了一个JSON文件,当内存测试开始时,测试将从这个JSON文件导入数据
问题
只读测试工作正常。但是,当我为具有标识(ValueGenerated==ValueGenerated.OnAdd)的实体插入某些内容时,它会自动获得值1(所有PK都是ints)。这是有意
我刚刚使用.netcore2.2和实体框架创建了一个简单的web API
通过向用户访问的每个控制器传递用户ID,我增加了一点安全性
但我注意到,当我必须将用户ID添加到我应用程序中的每个控制器并运行我的用户检查以确保用户可以访问该内容时,它开始变得混乱
下面你会看到一个例子,我的意思
我想知道,有没有办法添加一次,然后让每个控制器检查它
谢谢
[Route("api/[controller]")]
[ApiController]
public class EngineController :
我有一个桌子部门,它可以自我介绍。要构建层次结构,层次结构中的每个部门都必须引用顶级部门
这是我的代码:
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public Department Department { get; set; }
}
我已使用以下代码为所有部门
我正在使用EF core 3.1 Azure Cosmos DB Provider,并希望从我的应用程序代码创建DB。在开发过程中,我想创建一个具有共享配置吞吐量的数据库,以限制成本,但我在EF core中找不到任何地方来配置它,以便在调用Ensure时重新创建数据库时使用共享throuput?不幸的是,尚未实现创建具有共享配置吞吐量的数据库。您可以在上跟踪此功能
希望这能对您有所帮助。不幸的是,尚未实现创建具有共享配置吞吐量的数据库。您可以在上跟踪此功能
希望这能对您有所帮助。如果您认为我的答
我有一个实体框架核心3.1实体:
public class Evaluation {
public Int32 EvaluationId { get; set; }
public Int32? ChapterId { get; set; }
public Int32? SectionId { get; set; }
}
是否可以在求值配置上定义检查约束,以确保章ID和节ID中只有一个不为空?有帮助吗?
我在这里读到,Database.BeginTransaction()默认情况下使用serializable,但我无法在其他任何地方确认这一点。它是IsolationLevel。未指定的,这意味着实际默认值由相应的ADO.NET提供程序提供。对于SqlServer,它是ReadCommitted。它是IsolationLevel.Unspecified,这意味着实际默认值由相应的ADO.NET提供程序提供。对于SqlServer,它是ReadCommitted。
这里有很多类似于我的问题,但似乎没有一个能帮助解决这个问题,因此出现了一个新问题。
我正在连接一个密钥库,该密钥库使用Program.cs文件中.net web api应用程序中的以下代码返回db连接字符串
var kVUri=$”https://{config[“azureKeyVault:vault”]}.vault.azure.net/”;
var azureServiceTokenProvider=新azureServiceTokenProvider();
var keyVaultCli
我做了一个ASP.NETBlazor服务器项目
我创建了一个模型类、一个服务类和一个DbContext类。
我还创建了一个SQL数据库,并在appsettings.json和startup.cs上连接到它
下面是我在Startup.cs中IConfiguration配置{get;}下的代码:
services.AddScoped<ClassNameService>(); //connect to business logic
#region Connect
我有一个简单的控制台应用程序,我正在尝试构建我的所有模型,但我有一些模型没有定义主键,Entity framework 2.1支持这种类型的表,但仍然收到此警告
Unable to identify the primary key for table 'dbo.myTable'.
Unable to generate entity type for table 'dbo.myTable'.
所以它不会生成模型
dotnet ef dbcontext scaffold "Server=MySe
我正在使用EFCore 2.2.3,并且禁用了本地评估
我有以下疑问
var query1 = companyContext.Companies.Where(c => c.Name == name);
var query2 = companyContext.Companies.Where(c => c.Id == 10);
如果我自己执行它们,它们就会正常工作
await query1.ToListAsync();
await query2.ToListAsync();
但是如果
如果我做这样的事
其中(x=>x.SomeGuid.ToString()==“00000000-0000-0000-0000-1234000001234”)
然后加载的实体不是我想要的。我想知道,已经加载了哪些实体
注意:我想要一个已经加载的所有实体的列表,而不仅仅是一个特定的实体
评论中的链接问题回答了问题的第二部分,因此我现在删除了该问题,以避免有人在评论中搜索
MyClass a = (from x in DBcontext.ChangeTracker.Entries() where x.
对于不同的“Microsoft.EntityFrameworkCore.*”NuGet软件包的使用,我有点困惑。
当您查看官方MS文档时(可在此处找到:)
他们总是谈论特定软件包的安装,例如“Microsoft.EntityFrameworkCore.SqlServer”,而从不谈论安装主核心软件包Microsoft.EntityFrameworkCore
在我看来,如果您不想添加任何特定的数据提供程序,则只需安装“Microsoft.EntityFrameworkCode”,然后从配置中加载特
我刚刚完成了以下工作(EF Core 3.1):
我的variabeaaa中有表1的元素和所有后续子表中的元素。我认为在这些情况下有必要使用。然后包括。我认为这必须通过以下方式完成:
var aaa = context
.Table1
.Include(t => t.Table2);
.ThenInclude(t2 => t2.Table3)
.ThenInclude(t3 => t3.Table4)
.Include(t =>
以下是我的软件包:
这是我的global.json文件:
{
"sdk": {
"version": "3.1.101"
}
}
这是我的项目文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFra
我正在使用Sql server数据库开发ASP.Net核心框架3.1
以下是我创建的两个模型:
public class Parent
{
public int parent_id { get; set; }
public string name { get; set; }
public List<Child> Childs { get; set; }
}
public class Child
{
public int child_id { get
嗯,我有一个客户端应用程序,它必须与远程数据库进行通信。我们的想法是:
客户端(使用EF存储库的POCO实体)--->gRPC客户端-->gRPC服务-->存储库(EF和POCO实体)
我的存储库有CRUD操作和另一个业务逻辑。我知道,也许使用DDD更好,并且有一个单独的模型层和另一个存储库层,但在这种情况下,项目开始考虑存储库是主层,具有确保数据库中信息正确保存的逻辑。无论如何,对于这个问题,这并不重要
我的问题是,在gRPC中,我不能使用.NET对象,所以我必须将我的POCO实体转换为gRP
我正在开发一个应用程序,它允许您使用Azure函数(计时器触发器)在Azure sql数据库和Sharepoint Online之间进行数据交换。
这确实是该环境中的第一个项目,我使用Microsoft Graph从在线sharepoint收集数据,但没有找到将其与Azure Sql数据库连接的方法。我的朋友建议我尝试使用Entity Framework Core将数据映射到Azure,但即使使用此解决方案,我也无法在它们之间传输数据。我希望您能帮助我。开箱即用,Microsoft Graph不
我正在尝试使用dotnet ef-TargetMigration:{MigrationName}
低于误差
无法识别的选项“-TargetMigration:0”
该命令是否已在实体框架核心中删除?有没有其他选择?
记住,它与你所期望的完全不同
dotnet ef迁移列表
dotnet ef迁移[arg]{option}
dotnet ef迁移添加[name]
删除//删除最后一个
按照说明,如果已经应用了数据库,则手动从数据库中删除更改。例如dotnet ef database update您
我尝试在EF中建模一个结构,其中我们有多个实体,每个实体都有本地化内容。所有这些本地化内容都存在于一个表中。(见下面的示例)
我遇到了一个问题,当我用流畅的语法定义外键时,当EF运行迁移以构建DB时,它将在本地化表中的LKey字段上应用多个外键。i、 eFK_本地化_foo 1_LKey/FK_本地化_foo 2_LKey。
这是不正确的,因为现在无法在本地化表中插入任何记录
我如何才能停止这种行为,或者我应该改变什么来实现我在EF中寻找的目标
p、 我看到过一些示例,其中建议创建一个中间表,该
我正在尝试为EF Core 2编写一个LINQ语句,该语句只请求SQL返回两列:UserID和FirstNamePreferred
我尝试过的所有操作都会创建一个请求所有列的SQL语句
这是我的密码:
var model = db.FamilyMember
.Where(fm => fm.UserID == message.CurrentUserID)
.Select(fm => new Model
{
UserID = message.CurrentUs
上面说:“当配置与Fluent API的关系时,您使用HasOne和WithOne方法。”仔细看,这会根据是否使用IsRequired来配置一对零或零对零关系。例如:
public class ParentEntity
{
public Int64 Id { get; set; }
public ChildEntity Child { get; set; }
}
public class ChildEntity
{
public Int64 Id { get; set; }
p
在efcore中,OnModelCreating构建了整个数据库,但我没有看到通过模型生成器定义TTL的方法;似乎我必须删除EF Core创建的容器
有谁知道更好的解决方案吗?很早以前。尽管对和Cosmos DB(包括)有完全支持,但几乎完全支持。TTL组件在v之前不可用。6.0 dotnet\e最早的核心掘金包。您可以通过以下dotnet\efcore Git问题跟踪此问题:
第5版的候选版本是。有关更多信息,请访问。我正在寻找一种解决方案,作为内部升级的一部分,以帮助您。你好,迈克
我感谢你在这件事上的帮助
问题
在某些情况下,将SQL Server数据库移交给您,您会发现主数据文件不必要地庞大。这样大的数据文件可能会带来管理困难,例如无法进行部分备份,或者无法使用分离和附着方法顺利迁移数据文件
解决方案
一个关键的解决方案是确定主文件组中最大的表并重新生成表,将数据定向到另一个文件组,该文件组可能是使用多个数据文件在单独的磁盘上创建的
但是,我不知道。如何在EF Core 5(代码优先)中的单独数据文件(.mdf)上拆分任何架构?不,这远远超出EF的能力范围。你的意思是,
当我有两个具有一对多关系的模型时,它们看起来像下面的模型:
public class Student
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int StudentID { get; set; }
public string Name { get; set; }
public int ClassID { get; set; }
[
我使用EF core:2.26,我有以下数据模型:
public interface IManeuverableAsset
{
OpenStateType? ManeuveredState { get; set; }
}
public interface IGeneratorManeuverableAsset : IManeuverableAsset
{
DateRange GeneratorInstallation { g
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 22 页