我试图通过实体框架构建一个或多个具有映射的表,但是,我在使用从正在使用的API构造的DTO文件时遇到了问题。
这是我正在使用的DTO文件,我从POSTMAN为JSON数据专门粘贴了它。
public class AllRequests
{
public class Rootobject
{
public Operation operation { get; set; }
}
public class Operation
{
public Result result { get; set; }
public Detail[] details { get; set; }
}
public class Result
{
public string message { get; set; }
public string status { get; set; }
}
public class Detail
{
public string requester { get; set; }
public string workorderid { get; set; }
public string accountname { get; set; }
public string createdby { get; set; }
public string subject { get; set; }
public string technician { get; set; }
public string isoverdue { get; set; }
public string duebytime { get; set; }
public string priority { get; set; }
public string createdtime { get; set; }
public string ignorerequest { get; set; }
public string status { get; set; }
}
}
正如您在上面看到的,它是非常层次化的,所以它不像从简单的类文件生成表那样直接。
这是我的DbContext
文件:
public class TransitionContext : DbContext
{
private const string connectionString = (connection);
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(connectionString);
}
public DbSet<AllRequests> Requests { get; set; }
}
我已经设置了运行良好的迁移,有一个到我的SQL Server的连接。但是,当我在PM控制台中运行Update-Database
命令时,它将不起作用。这些错误不是直接的,但它们让我绕圈子跑,首先是设置了一个ID键,然后是表关系,但没有关于如何做到这一点的好的源材料。
有人能教我如何在SQL Server上通过实体框架成功实现这个DTO吗?我猜它会利用模型创建者,但我仍然不确定这个过程在这种情况下是如何完全工作的。
如有任何帮助,我们将不胜感激。
尝试使用[NotMapped],就像错误消息建议的一样
public class Operation
{
public Result result { get; set; }
[NotMapped]
public Detail[] details { get; set; }
}
如果你需要这个数组。。。EF需要一个导航的方法。