【发布时间】:2022-06-10 20:43:29
【问题描述】:
我可以将我的 2 个 DTO 合二为一吗MapEntity 很抱歉,我是新手,我想了解我的后端是如何工作的。
这是我的 2 个 DTO
public class PropertyTransactionDTO
{
public int Id { get; set; }
public string TransactionNumber { get; set; }
public DateTime TransactionDate { get; set; }
public PropertyTransactionDetailsDTO PropertyTransactionDetails { get; set; }
}
public class PropertyTransactionDetailsDTO
{
public int Id { get; set; }
public int PropertyTranId { get; set; }
public bool isDepreciation { get; set; }
public string Dr { get; set; }
}
这是我的 2 个实体
public class PROPERTYTRANSACTIONDETAILS
{
public int ID { get; set; }
public int PROPERTYTRAN_ID { get; set; }
public bool IS_DEPRECIATION { get; set; }
public string DR { get; set; }
public List<PROPERTYTRANSACTION> PROPERTY_TRANSACTION { get; set; }
}
public class PROPERTYTRANSACTION
{
public int ID { get; set; }
public string TRANSACTION_NUMBER { get; set; }
public DateTime TRANSACTION_DATE { get; set; }
public PROPERTYTRANSACTIONDETAILS PROPERTYTRANSACTIONDETAILS { get; set; }
}
这就是我所做的,我试图把它放在一个中,对吗?与否
private PROPERTYTRANSACTION MapToEntity(PropertyTransactionDTO item)
{
if (item == null) return new PROPERTYTRANSACTION();
return new PROPERTYTRANSACTION
{
ID = item.Id,
TRANSACTION_NUMBER = item.TransactionNumber,
TRANSACTION_DATE = item.TransactionDate,
PROPERTYTRANSACTIONDETAILS = new PROPERTYTRANSACTIONDETAILS()
{
ID = item.PropertyTransactionDetails.Id,
PROPERTYTRAN_ID = item.PropertyTransactionDetails.PropertyTranId,
IS_DEPRECIATION = item.PropertyTransactionDetails.isDepreciation,
DR = item.PropertyTransactionDetails.Dr
}
};
}
如有错误请指正,谢谢
【问题讨论】:
-
您在运行代码时是否遇到任何错误?我看到您的代码没有问题,但我更喜欢使用 AutoMapper 库进行映射
-
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid column name 'PROPERTYTRANSACTIONDETAILSID'. at Microsoft.Data.SqlClient.SqlCommand.<>c.<ExecuteDbDataReaderAsync>b__169_0(Task1 结果)在 System.Threading.Tasks.ContinuationResultTaskFromResultTask2.InnerInvoke() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) -
这是我的错误
-
为什么会有这个公开列表
PROPERTY_TRANSACTION { get;放; } 在 PROPERTYTRANSACTIONDETAILS 中?
标签: c# asp.net asp.net-core entity-framework-core