ef-code-first 相关问题

EF Code-First是一种将Microsoft的Entity Framework与POCO类一起使用的方式,而不是模型优先或DB优先。

如何通过 LINQ Join() 链接两个 IQueryable?

我有两个 IQueryable: 成分: 英格德 描述 可用成分: 英格德 我已经有一个 IQueryable for Ingredient: var ingQuery = 来自 context.Ingredients 中的 i 选择...

回答 2 投票 0

Linq 使用 GroupBy 时,Inclusion 不起作用

包括 matchparticipants 不起作用。当我调试时它总是说 Null。 但是当我将 GroupBy 放在注释中时,它工作正常。我正在使用实体框架 4.3.1 和代码优先。 实体: 公开

回答 5 投票 0

实体框架,当我运行启用迁移时,它不会创建文件夹

我收到错误,如屏幕截图所示: 我还检查了我的 nuget 包(版本)和实体框架包。 我向chatgpt寻求帮助,我做了它想做的事情,但它不起作用。

回答 1 投票 0

EF Core 流畅 API 中的“幽灵”影子键

我有这个设置(粗略地说,我已经编辑掉了不相关的代码以提高可读性)。 公共类 LevelSection { 公共 Guid Id { 获取;放; } 公共 Guid UserDataId { 获取;放; } } 进而 p...

回答 1 投票 0

如何使用 Identity ASP.NET Core 通过代码优先迁移来播种用户和角色

我创建了一个新的干净的asp.net 5项目(rc1-final)。使用身份验证我只有 ApplicationDbContext.cs 和以下代码: 公共类ApplicationDbContext:

回答 13 投票 0

如何通过 AutoMapping 到 Dto 高效地进行具有多个导航/级别的 EFCore 7 查询?

我第一次在 Asp.net WebAPI 中的端点上下文中使用 EFCore。 我有一张场地表,我正在尝试: 查询他们 通过 AutoMapper 将它们传送到 Dto/公共 mo...

回答 0 投票 0

EF Core 7一对一关系,同一张表的两个外键

我正在努力解决来自同一张表的 2 个外键的问题: 公开课人 { 公共 int PId { 得到;放; } 公共字符串名称 { 得到;放; } 公共诠释? HomeAddressId { 得到;...

回答 1 投票 0

Blazor WASM SqlException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“类别”中为标识列插入显式值

很抱歉发布了看似重复的内容,但请多多包涵! 我第一次使用 Entity Framework 开发 Blazor .NET Core 应用程序。我的项目基于 Thomas Beck 的项目 f...

回答 1 投票 0

添加迁移不适用于 EF Core 代码优先方法 - C#

我正在构建一个具有简单 CRUD 操作的 ASP.NET Web Api 和一个应该使用 EF Code First 和迁移生成的数据库。 在项目的结构方面,我使用的是 ASP.NET ...

回答 3 投票 0

EF 核心数据注释必须大于其他字段

这是生成表格的模型类。 公开课使命 { [钥匙] 公共字符串 ID { 得到;放; } [范围(最小值:1,最大值:int.MaxValue)] public int MinDayRate { 得到;放; } ...

回答 2 投票 0

如何使用 EF Core Code First 在 Oracle DB 中使用自动递增 ID 播种数据

在将 Oracle DB 与 EF Core 和数据库种子一起使用时,我遇到了自动生成主键值的问题。 示例实体: 公共类状态:IBaseEntity,ILastEdited { [密钥,数据库生成(

回答 0 投票 0

EF 核心错误 - 未找到项目。更改当前工作目录或使用 --project 选项

我正在使用 Visual Studio 2015 和 dotnet 核心,并尝试使用 Sqlite 和本文档/教程开发一个 EF Core Code First 项目,它也使用 Sqlite => NET Core - 新数据库 ...

回答 12 投票 0

EF core 有没有办法使用 dbContext 生成迁移脚本

寻找使用上下文生成 sql 脚本以从一个特定迁移迁移到另一个的代码优先方法。我似乎无法在网上找到这个。 就像是 上下文.数据库.

回答 2 投票 0

C# 代码首先在 PM 控制台尝试更新数据库时,数据库中已经有一个名为 xxx 的对象

我删除了一些表,以为它们会在运行我的应用程序时重新创建,但它们不是,它说找不到表。因此,为了重新运行迁移,我已将它们从迁移任务中删除...

回答 0 投票 0

来自 3 个表的 POST 和 GET 值通过多对多关系与 Code First 链接

Visual Studio Code 中带有多个可选复选框的 Html 表单: 车型: 带有多个可选复选框的 Visual Studio Code 中的 Html 表单: <form name="CarServ" id="myForm"> <div> <label>CarModel:</label> <input type="text" id="model" size="65" name="CarModel" placeholder="Enter Car Model" required> </div> <div class="check"> <label>Addons:</label> <input type="checkbox" name ="SelectedCheckboxes[]" value="10%off First service visit" id="10%off First service visit"> <label for="10%off First service visit">10%off First service visit</label> <input type="checkbox" name="SelectedCheckboxes[]" value="10%off Waterwash" id="10%off Waterwash"> <label for="10%off Waterwash">10%off Waterwash</label> <input type="checkbox" name ="SelectedCheckboxes[]" value="Free AC Inspection" id="Free AC Inspection"> <label for="Free AC Inspection">Free AC Inspection</label> </div> <button id="btn" type="submit">Submit</button> </form> dotnet core api 中的三种模型, CarForm.cs: public class CarForm { public int Id { get; set; } [Required] public string CarModel { get; set; } [Required] public string SelectedCheckboxes { get; set; } public IList<Selection> Selections { get; set; } } 插件.cs: public class Addon { public int Id { get; set; } public string CheckboxName { get; set; } public IList<Selection> Selections { get; set; } } Selection.cs: public class Selection { public int CarFormId { get; set; } public CarForm CarForms { get; set; } public Addon Addons { get; set; } public int AddonId { get; set; } } CarDbContext.cs: public class CarDbContext : DbContext { public CarDbContext(DbContextOptions<CarDbContext> options) : base(options) { } public DbSet<CarForm> CarForms { get; set; } public DbSet<Addon> Addons { get; set; } public DbSet<Selection> Selections { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Selection>() .HasKey(s => new { s.CarFormId, s.AddonId }); modelBuilder.Entity<Addon>().HasData( new Addon { Id = 1, CheckboxName = "10%off First service visit" }, new Addon { Id = 2, CheckboxName = "10%off Waterwash" }, new Addon { Id = 3, CheckboxName = "Free AC Inspection" }); } } 创建控制器类: namespace CarServiceFormApi.Controllers { [ApiController] [Route("api/[controller]")] public class CarServiceFormController : ControllerBase { private readonly CarDbContext _context; public CarServiceFormController(CarDbContext context) { _context = context; } [HttpPost("submit-form")] public IActionResult SubmitForm([FromBody] CarForm carForm) { if (!ModelState.IsValid) { return BadRequest(ModelState); } // Save the CarForm to the database _context.CarForms.Add(carForm); _context.SaveChanges(); // Create the selections for the CarForm var selections = carForm.SelectedCheckboxes.Select(id => new Selection { CarFormId = carForm.Id, AddonId = id }); _context.Selections.AddRange(selections); _context.SaveChanges(); return Ok(); } [HttpGet("get-form-data/{id}")] public async Task<IActionResult> GetFormData(int id) { // Retrieve the CarForm from the database var carForm = await _context.CarForms.Include(cf => cf.Selections).ThenInclude(s => s.Addons).FirstOrDefaultAsync(cf => cf.Id == id); if (carForm == null) { return NotFound(); } // Return the CarForm as JSON return Ok(carForm); } } } 基本上我想要实现的是,我的 html 表单输入详细信息必须发布到 API 并存储在数据库中。然后,使用 GET 方法,我试图在成功时将数据检索回控制台。由于它是一个多选复选框,我将一组 Selectedcheckboxes 传递给 API 并尝试将其存储在数据库中。 现在当我运行我的 html 表单时,我在控制台上收到一个错误,如 {"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":"One or more validation errors occurred.","status":400,"traceId":"00-d0f3aa9cab0ad5f1450f6bbb403a1a9c-adf3f2910efaeafb-00","errors":{"CarModel":["The CarModel field is required."],"Selections":["The Selections field is required."],"SelectedCheckboxes":["The SelectedCheckboxes field is required."]}} 它显示“选择”字段是必需的!但我还没有在“CarForm.cs”中声明一个选择字段。我希望我的“CarForm.cs”上的选择线是执行链接模型的功能。无法弄清楚我在代码中哪里出错了。 尝试将SelectedCheckboxes[]更改为简单的SelectedCheckboxes。当后端实际上是单个字符串值时,您正试图绑定一个列表。 Selections 字段与 CarForm 具有循环依赖性。最好创建一个与 DTO 数据库关系不紧密耦合的单独视图模型。 基本上我想要实现的是,我的 html 表单输入详细信息 必须发布到 API 并存储在数据库中。然后,使用 GET 方法我试图在成功时将数据检索回控制台 根据您的描述和场景,您的代码片段确实看起来合乎逻辑,即使我不认为它的气味仍然存在,您也在使简单的东西变得嘈杂和笨拙。 为了实现 API 和 HTML 的东西,javascript 可能是理想的选择,但是,它可以在没有它的情况下实现,甚至可以在一般的 MVC 控制器上实现。 除此之外,我认为您的模型设计也是不必要的,因为我们只需要一个插件列表和汽车详细信息,除了不清楚您为什么使用该关系设计之外。 让我们开始行动,我们如何以更简洁的方式完成您的场景: 使用 MVC 控制器: 型号: 如前所述,我需要的只是汽车 mdoel 和插件。因此,我将所有这些修改为 CarFormViewModel。 public class Addon { public int Id { get; set; } public string? CheckboxName { get; set; } public bool IsChecked { get; set; } } public class CarFormViewModel { public int Id { get; set; } public string? CarModel { get; set; } public List<Addon>? Addons { get; set; } } 控制器: public IActionResult LoadView() { var addonsList = new List<Addon>() { new Addon() { Id=1,CheckboxName="10% off First service visit", IsChecked = false }, new Addon() { Id=2,CheckboxName="10% off Waterwash", IsChecked = false }, new Addon() { Id=3,CheckboxName="Free AC Inspection", IsChecked = false }, }; var model = new CarFormViewModel(); model.Addons = addonsList; return View(model); } 景色: @model DotNetCoreTestApp.Models.CarFormViewModel @{ ViewData["Title"] = "Car Addons Check Box List"; } <form asp-action="SubmitCarAddonSelectedValue" asp-controller="Home" method="post"> <table class="table table-striped table-bordered mr-3 ml-3"> <tr> <th> <label asp-for="CarModel"></label></th> <td> <input asp-for="CarModel" class="form-control" placeholder="Enter Car Model" /><span asp-validation-for="CarModel"></span></td> </tr> <tr> <th>Addons:</th> <th> @for (int i = 0; i < Model.Addons?.Count; i++) { <label>@Model.Addons[i].CheckboxName</label> <input asp-for="@Model.Addons[i].IsChecked" /> <input type="hidden" asp-for="@Model.Addons[i].Id" /> <input type="hidden" asp-for="@Model.Addons[i].CheckboxName" /> } </th> </tr> </table> <button type="submit" class="btn btn-primary">Submit</button> </form> 提交后操作: [HttpPost] public IActionResult SubmitCarAddonSelectedValue(CarFormViewModel carFormViewModel) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var selectedAddonsValueFromView = carFormViewModel.Addons?.Where(selectedAddons => selectedAddons.IsChecked == true).ToList(); //Insert your addons in database return Ok(selectedAddonsValueFromView); } 输出: 使用 API 控制器: 景色: 在视图中只需要改变这种格式的 API 路由 URL [email protected]("SubmitForm","CarServiceForm") 如下: @model DotNetCoreTestApp.Data.CarFormViewModel @{ ViewData["Title"] = "Combatant Check Box List"; } <form id="SubmitForm" method="post" [email protected]("SubmitForm","CarServiceForm")> <table class="table table-striped table-bordered mr-3 ml-3"> <tr> <th> <label asp-for="CarModel"></label></th> <td> <input asp-for="CarModel" class="form-control" placeholder="Enter Car Model" /><span asp-validation-for="CarModel"></span></td> </tr> <tr> <th>Addons:</th> <th> @for (int i = 0; i < Model.Addons?.Count; i++) { <label>@Model.Addons[i].CheckboxName</label> <input asp-for="@Model.Addons[i].IsChecked" /> <input type="hidden" asp-for="@Model.Addons[i].Id" /> <input type="hidden" asp-for="@Model.Addons[i].CheckboxName" /> } </th> </tr> </table> <button type="submit" class="btn btn-primary">Submit</button> </form> API控制器: [HttpPost("SubmitForm")] public IActionResult SubmitForm([FromForm] CarFormViewModel carFormViewModel) { if (!ModelState.IsValid) { return BadRequest(ModelState); } //Get Car Details var carDetails = carFormViewModel.CarModel; //Get Addons Details var selectedAddonsValueFromView = carFormViewModel.Addons?.Where(selectedAddons => selectedAddons.IsChecked == true).ToList(); //Do whatever you want to do in database return Ok(carFormViewModel); } 输出: 注意:如果您想知道如何实现使用javascript您可以在这里查看我们的官方文档

回答 2 投票 0

Entity Framework 在一对一(可选/必需)关系中生成第二个左连接

我在 EF Code First 中有以下模型: 公开课A { 公共 int Id { 得到;放; } 公共虚拟 B { 得到;放; } } 公共B类 { 公共 int Id { 得到;放; } 公共诉...

回答 1 投票 0

使用 EntityTypeConfiguration 时的抽象领域模型基类<T>

获取 Base 对象属性的中心映射有什么技巧吗? 使用 EntityTypeConfiguration 时是否有抽象类的一些简单模式。 非常感谢任何提示。 我不能...

回答 4 投票 0

FirstOrDefault 抛出“序列包含多个匹配元素”

我到处都看到大多数人在使用 SingleOrDefault 时遇到此错误。但是,我正在使用 FirstOrDefault。有没有人见过这个异常?我正在使用 Repository Patte ...

回答 4 投票 0

debezium/postgres 容器在“GENERATED”处或附近出现语法错误

我想使用 debezium 和 kafka 与 dotnet 核心应用程序创建应用程序。 Kafka、postgres、zookeper 和 connector 在 docker 上运行没有问题。我试过这个 coomand dotnet ef 数据库更新 --pr ...

回答 0 投票 0

EF code first with MariaDb Error - 在 'max) NOT NULL 附近使用的正确语法

我在项目中使用 Entity Code First (EF core ver.6)。迁移在 sql server 上正常工作,但在 MariaDb 上不起作用。 我通过这些

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.