【发布时间】:2021-03-30 03:14:02
【问题描述】:
朋友们,它有一个记录用户信息的“人”表。现在我创建了一个“地址”表来存储用户的地址信息。
现在我需要重新组织我的代码,因为我遇到了关系问题。这些是我的文件:
Person.cs
using LojaVirtual.Libraries.Lang;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;
namespace LojaVirtual.Models
{
public class person
{
/* PK */
[Key]
public int cod_person { get; set; }
public string name { get; set; }
public DateTime date { get; set; }
public string gender{ get; set; }
.
.
public string email { get; set; }
public string password { get; set; }
public addres addres { get; set; }
[ForeignKey("cod_person")]
public virtual ICollection<order> Order { get; set; }
}
}
地址.cs
using System;
using System.Collections.Generic;
using LojaVirtual.Libraries.Lang;
using System.Linq;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace LojaVirtual.Models
{
public class address
{
[Key]
public int cod_address{ get; set; }
public string { get; set; }
public string neighborhood{ get; set; }
public string city { get; set; }
public string state{ get; set; }
.
.
[ForeignKey("person")]
public int? cod_person { get; set; }
public person person { get; set; }
}
}
LojaVirtualContext.cs
using LojaVirtual.Models;
using LojaVirtual.Models.ProdutoAgregador;
using Pomelo.EntityFrameworkCore.MySql;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
namespace LojaVirtual.Database
{
public class LojaVirtualContext : DbContext
{
/*
* EF Core - ORM
* ORM -> Bibliteca mapear Objetos para Banco de Dados Relacionais
*/
public LojaVirtualContext(DbContextOptions<LojaVirtualContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<person>()
.HasOne<address>(s => s.address)
.WithOne(ad => ad.person)
.HasForeignKey<address>(ad => ad.cod_person);
}
public DbSet<person> person { get; set; }
public DbSet<order> order{ get; set; }
public DbSet<address> addres { get; set; }
}
}
在这一行,我得到一个我无法解决的错误:
public List<order> ObterTodosPedidosPorSituacao(string status)
{
return _banco.order
.Include(a => a.order_situation)
.Include(a => a.person)
.ThenInclude(p => p.address)
.Where(a => a.Situation == status).ToList();}
我需要通过 person 表访问地址表的字段。我相信就是这样,但我得到了错误:
MySql.Data.MySqlClient.MySqlException: '字段列表'中的未知列'a.addresscod_address''
我也试过:a.person.address,但出现同样的错误。
如果有人可以分析,我很感激。
【问题讨论】:
-
什么是_banco?能否请您包括完整的代码,包括构造函数?
标签: c# mysql asp.net-mvc