我有一个articlecoment实体,如下所示:
public class ArticleComment
{
public int ArticleCommentId { get; set; }
public int? ArticleCommentParentId { get; set; }
//[ForeignKey("ArticleCommentParentId")]
public virtual ArticleComment Comment { get;
我有一个完整的.NET Framework项目(*.csproj),可以访问EF核心数据
如何在非.NET核心项目(ASP.NET MVC5)中为EF核心启用迁移
我得到以下错误:
dotnet : No executable found matching command "dotnet-ef"
EF核心工具的1.0.0-preview2和1.0.0-preview1版本不适用于csproj项目,仅适用于project.json。改用包管理器控制台命令。请参见您需要安装包含ef命令的工具:安装
我得到了这个JSON,我正试图用一个模型来接受它,但我似乎不知道我将如何接受双层JSON
我只是不断得到无效数据,所以我的模型应该是什么样子
JSON
模型
控制器
[HttpPost]
public async Task<IActionResult> FlowMessageFromGateway([FromBody] FlowDTO flowDTO)
{
if (!ModelState.IsValid)
在EntityFrameworkCore中,我需要使用方法语法来表示以下SQL查询
查询返回每个ProductID具有最高优先级的记录
有办法吗
谢谢。试试这个:
var rules = db.Rules.Where(
a=>db.Rules.Where(
b => b.ProductId == a.ProductId && b.Priority > a.Priority
).Count() ==
我不熟悉.NETCore和Blazor,主要是WebForms和MVC经验
我发现的所有Blazor文档和教程都使用单独的API项目,并通过HttpClient和Json序列化/反序列化来访问数据。我明白为什么这对于使用WebAssembly的客户端Blazor是必要的,但是对于使用Signal的服务器端Blazor,使用Entity Framework DbContext直接从组件访问数据库的最佳方式是什么
例如,在MVC控制器中,您可以执行以下操作:
private ApplicationD
我有.NET Core 3.1.NET标准2.0类库,带有Microsoft.EntityFrameworkCore.SqlServer 3.1.8。我正在使用VS 2019和EF Core电动工具2.4.217
我所有的SQL表名都是复数的,并且具有具有以下命名约定的标识列{TableName}ID。因此,例如Documents表具有标识列DocumentID
当我使用逆向工程生成实体时,power tool将属性名称生成为DocumentId,而不是DocumentId
外键列也会出现同样的
我有一个在EntityFrameworkCore中工作的代码
public void SaveProject(Project item)
{
var existing = _context.Projects.FirstOrDefault(a => a.Id == item.Id);
existing.Description = item.Description;
existing.IsArchived = item.IsArchive
我使用Scaffold DBContext commnand从数据库创建模型。
我使用选项-DataAnnotations来生成DataAnnotation属性。
我得到了Required和ColumnAttribute,例如:
[Required]
[Column(TypeName = "varchar(100)")]
public string Cognome { get; set; }
但我没有StringLength属性。
有没有办法生成此属性?
谢谢。我认为这在2.0.0版中正在改变
我正在使用EF Core,在保存新实体时遇到问题
这是我的模型课
[Column("Id")]
public int ID { get; set; }
[Required]
[Column("Pratica", TypeName = "varchar(10)")]
public string PRATICA { get; set; }
[Column("Anno")]
public int ANNO { get; set; }
[Required]
[Column("Variante", Typ
有没有一种方法可以使用EntityFrameworkCore来获取嵌套数据,而不必对其进行迭代?像一个简单的SQL select和连接一样,我想在同一个表中显示所有数据我想您正在寻找.Include()和。然后Include()方法,这些方法允许您快速加载相关数据
有关该主题的更多信息,请访问官方实体框架文档,听起来您知道获取所需数据所需的SQL。因此,我建议您创建一个数据库视图,然后将ef实体映射到该视图。只要您只是在阅读ef,它就会像对待任何其他表一样对待该视图。但这仍然会通过我必须迭代的导
在我的Azure功能中,我使用的是Microsoft.EntityFrameworkCore版本3.1.4。今天我决定更新nuget包,并将其更新为3.1.5。此外,我还更新了以下软件包:
<PackageReference Include="AzureExtensions.Swashbuckle" Version="3.2.2" />
<PackageReference Include="Microsoft.Azure.Sto
我们有一个项目,它是一个类库,它基于.NET标准2.0,我们称之为LibraryA。此LibraryA项目有一个对“Microsoft.EntityFrameworkCore.Sqlite(3.1.6)”的包引用。我们用“dotnetpublish[project path]--no build-o[output]-c[configuration]”发布了这个库
然后会有两个不同的应用程序:一个是基于.NETCore3.1的,我们称之为应用程序_Core;另一个基于.NETFramework4.
我有一张这样的桌子
public class Asset
{
public int id_asset { get; set; }
public int id_user { get; set; }
public int id_parent_asset { get; set; }
public string name { get; set; }
public virtual Asset Parent_Asset { get; set; }
publ
编辑:我在餐馆用手机写这封信。我也很抱歉,因为我缺乏理解,所以我无法使用很多正确的术语
我试图将一个对象保存到数据库中,该数据库使用JSON传输给我
它是一个对象数组,每个对象都有一个属性列表,如标题、描述、链接等,用于定义对象
Object1 [
Item1: {
properties [
Value: "some title 1",
PropertTypeID: "cf47be2b-690d
我试图使用EntityFrameworkCore1.0RC1更新一个实体及其相关子实体,其中实体与DbContext分离。我以前使用过类似于本文所述的解决方案
但是,我们似乎无法再使用Entity Framework 7执行以下操作:
DbContext.Entry(existingPhoneNumber).CurrentValues.SetValues();
Visual Studio抱怨:
EntityEntry不包含“CurrentValues”的定义
等等
我想这意味着EF Core
在EFCore 2.0中添加新功能DbContext池。
我知道如何在单个上下文中使用它,
然而,在项目中有时需要多个上下文
public class BContext : DbContext
{
public BContext(DbContextOptions<BContext> options) : base(options) { }
}
public class AContext : DbContext
{
public AContext(DbContextO
我正在从事一个使用实体框架COR2.1和Aspnet核心Web API的项目
我有以下ValueObject
public class Email
{
private string _value;
private Email(string value) => _value = value;
public static Email Create(string email)
{
//... code hidden for clarity
我正在尝试创建可重用的包含,当我有特定的具体根实体时,它目前可以工作。但假设我有这样的结构:
public class A
{
public B NavigationB { get; set; }
}
public class B
{
public C NavigationC { get; set; }
}
public class C
{
}
我的手机包括扩展
public static class IncludeExtensions
{
public stat
我有一个问题,我试图用一些集合填充一个对象,这些集合在其中一个集合中包含另一个集合,我也要填充该集合的对象。如果我不使用AsNoTracking(),一切正常。但是,当我使用AsNoTracking()时,我想要的深度嵌套对象不会被填充。下面是一个示例代码
DatabaseContext.Account
.Include(lvl1 => lvl1.A)
.Include(lvl1 => lvl1.B).ThenInclude(lvl2 => lvl2.C).Then
我的主模型上有以下列:
[ForeignKey("CountryId")]
public int? CountryId { get; set; }
public VFCountry Country { get; set; }
以及以下模型:
[Table("Country", Schema = "mdm")]
public class VFCountry
{
[Key]
public int Id { get; set
假设我有aaaa.com/Class,如果用户导航到此链接,我希望数据库中的PageCount增加1。请帮助我。您可以通过以下方式获取中间件中的url:
using Microsoft.AspNetCore.Http.Extensions;
public class MyMiddleware
{
private readonly RequestDelegate _next;
public MyMiddleware(RequestDelegate next)
{
我正在使用EF Core使表中的外键不可为null,而以前它是可为null的。我创建了迁移并尝试运行它,但出现了错误
column "xId" contains null values
这是因为正如前面提到的,该列具有空值,因为它以前是一个可为空的字段
在这次迁移中,我向表中添加了一个附加值“none”,该表包含指向列为“xId”的表的链接。如何将空值设置为“无”作为默认值
我在我的Web API存储库中有一个更新方法,如下所示(在EF Core中):
然后这是返回的响应:
{}
并且数据库中的员工保持不变
我也试过:
public async Task<Employee> Update(Employee emp)
{
Employee employee = await
_context.Employees.SingleOrDefaultAsync(e => e.ID == emp.ID);
我正在尝试使用NetTopologySuite和EF Core 2.2.6来执行地理搜索
我已经成功地在我的模型中添加了一个位置点,EF Core可以读取和写入此属性
但是,当我尝试将此谓词添加到查询时,我发现两个问题:
query = query.Where(x => x.Foo.Bar.Location.Distance(new Point(longitude, latitude) { SRID = 4326 }) <= distance);
如果我在SQL Profiler中
如何通过EF core只更新表中的一个字段?
在另一种语言中,我如何将下面的SQL语句翻译成EF Core:
更新表_name SET column1=value1,其中包含条件 我在谷歌上搜索了一下,找到了一个关于这个的小例子
var stud = new Student(){ StudentId = 1, Name = "Bill" };
stud.Name = "Steve";
using (var conte
是否有方法防止用户在使用代码优先迁移时调用“更新数据库”(Visual Studio)或“dotnet ef数据库更新”(CLI)?我们希望强制用户在更新数据库时生成脚本,并防止他们意外地使用ef core工具更新生产数据库。提前感谢。实体框架只需生成一个脚本,然后在数据库中执行。因此,在本例中,如果要限制某人更新数据库,只需在数据库中添加一些限制即可。例如,您可以创建用户并授予他们只读权限。这不起作用。我们使用windows身份验证来访问数据库。VS发送windows凭据以访问数据库进行更新。
如果相关表中的另一列发生更改,我想计算列值
产品类别:
public class Product
{
private int totalQuantity;
private bool quantityAlert;
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ProductId { get; set; }
[Required]
public strin
我以为这很简单。。。
如果我想在页面加载之前强制一个列/字段的值,我该怎么做
以下是模型中的线条:
[DataType(DataType.Currency)]
[Column(TypeName = "money")]
[Display(Name = "Contract Value")]
public decimal? ContractValue { get; set; } = 0m;
[DataType(DataTy
我使用的是EF Core,能够构建初始数据库和表:
Scaffold DbContext“连接字符串”Microsoft.EntityFrameworkCore.SqlServer-OutputDir Models-Tables TestTable
但是我似乎不知道如何在初始scaffold之后添加表。再次运行该命令以更新DbContext。
您可以制作一个bat文件来运行命令。从长远来看,这将使它变得更容易EF团队提供的工具不允许这样做。你需要一个像llblgenpro这样的商业工具。你不能再
在其他功能更新函数中,如果我试图删除表示两个BusAppl实体之间可选关系的实体
_context.BusApplDpndncy.Remove(toRemove);
BusAppldPNcy中的这个setter在我调用SaveChanges时被调用,并传递了一个null值,导致NullReferenceException
public BusAppl BusAppl
{
set
{
this._BusApplName = value.BusApplNm;
所以我有一个EF核心项目。当我需要添加/迁移时,我会发出并更新命令:
dotnetef数据库更新-v
这一切都很好,如果我需要更新QA、Staging、Prod数据库,我会更新appsettings.json文件中的连接字符串并运行命令
如果我无法从本地机器访问生产,会发生什么情况?如何将数据库更新为最新的迁移
如果我记得使用实体框架(不是.NETCore)的话。当我部署新版本的.net应用程序时,它会尝试自动更新数据库。此功能是否仍存在于.NET core中?是,您可以运行
dbContext
我决定使用这个AddDbContext方法为我的EntityFramework核心项目添加和设置上下文
services.AddDbContext<ExampleContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ExampleConnection")));
// https://stackoverflow.com/a/51970589/196526
我假设这个AddDbCo
在Entity Framework Core中,是否可以看到在DbContext上调用SaveChanges()方法时将应用的SQL?您可以使用控制台记录器“EF Core日志自动与.NET Core的日志机制集成”
你可以在这里阅读:
您可以使用DbContextOptionsBuilder.UseLoggerFactory(loggerFactory)方法记录所有sql输出。通过使用构造函数注入,如下所示
public class DemoContext : ObjContext
{
我正在Azure中构建一系列服务,其中一些存储使用SQLAzure(通过代码优先实体框架核心)。为了在开发期间节省资金,我将DB(在这里我真的不关心性能)设置为最低的基本层(仅5个DTU,成本约为5美元/月)
我会定期运行一个简单的shell应用程序
dataContext.Database.EnsureDeleted()后跟dataContext.Database.EnsureCreated(),然后插入一些基本数据,这样我就可以从一个干净/已知的地方开始
只有一个问题:每次我这样做,DB都会
我有一个存储过程,它返回一个ID列表。(然后我将此ID列表用作对象的键。)
我正在将它从.NET迁移到.NET核心。在普通的.NET中,我可以使用扩展库以如下方式获取数字:
var getOrderDetailIdsStoredProc = new GetOrderDetailIdsStoredProc()
{
NumberOfOrderDetailIdsNeeded = numberOfOrderDetailIdsNeeded
};
var orderDetailIds = cont
我正在尝试查询具有多个集合级别的实体,以及在单个级别上具有多个集合的实体。我正在使用Include,然后使用Include,但没有太大的成功。我发现的示例没有在同一级别上有多个集合,我也没有将该技术应用到我的用例中
这是我的实体的简化说明。具有[]的是集合:
Home
Areas[]
Area
Name
Categories[]
Name
Recommendations[]
当实体框架核心扔掉我的include时,我面临一种奇怪的行为。
我需要制作一些通用方法来过滤和组合我的查询,这些方法必须接收一些参数和IQueryable筛选器子查询,并返回组合的IQueryable结果以供进一步组合。
我简化了我的代码,并举了一个例子,当你明白我的意思时:
public IQueryable<Tuple<TResult, TFilter>> Method1<TResult, TFilter>(IQueryable<TFilter>
我已经看到了关于如何在efcore中调用SQL的好例子。但它们都假设您有一个自定义类型,您希望反序列化到该类型中
基本上,我正在寻找这个完整的Dot-Net框架代码的转换,该代码调用存储过程以获得整数:
int newId = this.Database.SqlQuery<int>("Order.GenerateOrderId").First();
int newId=this.Database.SqlQuery(“Order.GenerateOrderId”).First();
我将VS2019与EF 6一起使用,下面是我在开发中使用的模型。当我尝试在EF配置中将外键“CountryId”映射到“Estore”模型时,我面临以下问题
PM> EntityFrameworkCore\Enable-Migrations
实体框架核心和实体框架6都已安装。实体框架核心工具正在运行。对实体框架6使用“EntityFramework6\启用迁移”。
启用迁移已过时。使用“添加迁移”开始使用迁移
PM> EntityFrameworkCore\Add-Migratio
在EF Core 3.1中工作-尝试在简单导航属性上配置外键关系。
依赖实体中的主键不是整数,并且没有默认的“ID”名称
我不想使用默认的integer auto increment ID列-我知道这些列可以很好地工作,但它也应该以这种方式工作,它看起来非常简单,但我找不到它应该如何工作
以下是一个简化的示例:
public class Customer
{
public int ID { get; set; }
public String Nam
我一直在学习ADO.NET,然后是EF Core。我的任务是在C#中创建一个数据库应用程序,首先在ADO.NET中创建,然后将该应用程序转换为实体框架
这是我在ADO.NET中的设计,看起来效果不错
CREATE TABLE Categories (
Id INT IDENTITY,
Name NVARCHAR(50) NOT NULL,
CONSTRAINT PK_Categories
PRIMARY KEY (Id)
)
CREATE TABLE C
在EF 6.1中引入了映射API,我们最终可以访问表名和列名。获取表名是EF Core中一个非常好的更改,但我还没有揭示如何获取列名
对于这里感兴趣的人,我将介绍如何在最新版本(RC1)中获得表名
当前获取列名的方法是什么?或者该方法是否还不可用
var columnNames = ctx.Model.FindEntityType(typeof (T))
.GetProperties().Select(x => x.SqlServer(
我有三个类,它们的关系定义为
定义(有许多)->(引用返回)节(有许多)->(引用返回)字段
一个定义有许多节,节属于一个定义。节和字段也是如此
public class Definition
{
public long Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Section> Sections { get; } = new List<S
我曾参与过一个EF 6项目,在该项目中,我们在框架代码中定义了一个约定,以确保所有具有C#DateTime的实体POCO都映射到Sql Server中的datetime2。既然没有约定,我如何在EF Core中实现这一点?谢谢@DavidG。根据您发送的链接,我认为这会起作用(我现在在一个公司网络上,有一个组策略,不允许NuGet Package Manager控制台调用entityframeworkcore.tools的init.ps1,所以我必须等待在家中尝试)
像这样的怎么样?据我所知,默
我想用EntityFramework核心创建一个查询,它有多个内部连接和一个交叉应用
我可以很好地创建内部连接,但似乎无法使交叉应用程序正常工作
谷歌搜索是否真的没发现什么有用的东西
尝试使用实体框架linq语句执行不同的操作,但到目前为止没有任何效果
这是我到目前为止得到的EF查询:
comCommunicationContext
.通讯
.AsNoTracking()
.Where(c=>c.Label.InternalName==labelName&&
c、 Businesstrans
我正在使用EF Core 3.1中的无键实体类型功能。我想把一些表数据映射到我的实体类中。
这是我的db上下文config:
public class HimartWarehouseReportContext: DbContext
{
public HimartWarehouseReportContext()
{
}
public HimartWarehouseReportContext(DbContextOptions<HimartWarehou
设置
我正在使用ASPNET核心和EFCore
我已设置MassTransit,以帮助在服务之间复制用户和令牌
每个用户都有多个令牌,它们通过令牌.UserId外键连接
问题
创建新的用户时,会发生两件事:
User和freshToken存储在数据库中
UserCreated和TokenCreated被同时发送到消息总线
实际上,Token(因为它比较小)在User之前处理,并弹出一个错误,指出Token.UserId中定义的给定Id的用户在表Users中不存在,这是正确的,因为User是与
背景:我正在编写一个应用程序,并使用efcore设计数据库。有一些特定的表存储用户操作,我需要跟踪谁创建了记录、上次修改了记录和删除了记录(软删除)
我有一个用户表,其中有一个int作为主键,每个字段(CreatedBy、LastModifiedBy、DeletedBy)都有一个指向用户行的int
我有一个完整的审计设置,其中整行的旧/新内容都存储在save上,这很好。但这个问题是关于通过跟踪创建/修改/删除的更直接的内容
帮助台通常每天使用这些字段来帮助用户快速确定发生了什么,但应用程序本身中
我遇到了一个问题,即向数据库写入新条目时没有使用我所期望的配置的默认值
我有一些课程:
公共类福利
{
公共字符串Id{get;set;}
[必填项,外键(“Id”),JsonIgnore]
公共雇员雇员{get;set;}
[列(TypeName=“money”)]
公共十进制收益成本{get;set;}
[列(TypeName=“十进制(16,8)”),默认值(1)]
公共十进制修饰符{get;set;}
}
公共福利雇员:福利
{
}
公共类福利依赖:福利
{
[必需]
公共字符串Name
我有一个带有[Flags]属性的枚举,如下所示:
[Flags]
public enum FlagStatus
{
Value1 = 1
, Value2 = 2
, Value3 = 4
}
x => x.Status.HasFlag(flagStatus)
@__request_Status_0 = 5
WHERE ([o].[StatusId] & @__request_Status_0) = @__re
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 22 页