c# - 首先使用 EF Core 代码在两个表之间进行映射
问题描述
我希望尝试使用EF Core code first
如下方式构建以下两个模型之间的架构和关系
public class Status
{
public int Id { get; set; }
public string Status { get; set; }
}
public class Order
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Status status { get; set; }
}
请任何人建议是否需要对上述模型(状态和订单)进行任何更改以获得如下查询结果
OrderID description status
1 test1 approved
2 test2 rejected
解决方案
我在下面编写代码并获得下一个结果。
1d7336aa-c144-4ca4-d2de-08d76cae93ab 说明已批准
public static void Main()
{
ShowData(AddData());
}
public static void ShowData(Guid orderId)
{
using var context = new OrderContext();
Console.WriteLine(context.Orders
.Where(x => x.Id == orderId)
.First()
.ToString());
}
public static Guid AddData()
{
using var context = new OrderContext();
var status = new Status()
{
StatusName = "approved"
};
var order = new Order()
{
Description = "Description",
Name = "Name",
OrderStatus = status
};
context.Orders.Add(order);
context.SaveChanges();
return order.Id;
}
public class Status
{
public int Id { get; set; }
public string StatusName { get; set; }
public override string ToString()
{
return $"{StatusName}";
}
}
public class Order
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual Status OrderStatus { get; set; }
public override string ToString()
{
return $"{Id} {Description} {OrderStatus}";
}
}
我认为除了将虚拟修改器添加到 OrderStatus 之外,您不应该更改任何内容。
推荐阅读
- jquery-select2 - Select2 在不将鼠标悬停在选择框上时不突出显示选项
- kubernetes - GCP 负载平衡器后端状态未知
- mysql - 如何通过关系表对数字求和?
- arrays - 以编程方式声明 i 数组
- python - Python 使用标志和管道运行 bash 脚本
- machine-learning - 如何将 word2vec 和 RNN 一起用于 NLP?
- security - secp256k1 的密钥派生
- regex - 使用正则表达式将字符序列替换为相同长度的不同字符序列
- ms-access - 如何让 MS Access 中的格式化自动编号值作为格式化值出现在表单控件中?
- javascript - 尝试从位于另一个控制器中的控制器激活复选框