Использование EntityFramework 6.2.0
Моя модель выглядит следующим образом:
<Table("Invoice_Totals")>
Public Class Invoice
<Key>
<Column("Invoice_Number")>
Public Property IntegrationKey As Int64
<Column("CustNum")>
Public Property CustomerKey As String = String.Empty
<Column("DateTime")>
Public ReadOnly Property CreatedTime As DateTime
<Column("Grand_Total")>
Public Property Price As Decimal = Decimal.MaxValue
<Column("Amt_Tendered")>
Public Property Payment As Decimal = 0
<Column("Amt_Change")>
Public Property PaymentChange As Decimal = 0
End Class
Этот запрос:
Using database As PosModels.PosDatabase = PosModels.PosDatabase.CreateWithNoProxies
Dim q As IQueryable(Of PosModels.Invoice) = database.Invoices
posInvoices = q.ToList
End Using
создает этот SQL:
SELECT
[Extent1].[Invoice_Number] AS [Invoice_Number],
[Extent1].[CustNum] AS [CustNum],
[Extent1].[Grand_Total] AS [Grand_Total],
[Extent1].[Amt_Tendered] AS [Amt_Tendered],
[Extent1].[Amt_Change] AS [Amt_Change]
FROM [dbo].[Invoice_Totals] AS [Extent1]
Как видите, столбец [DateTime]
не включен в запрос.Я предполагаю, потому что «DateTime» является ключевым словом / типом данных SQL.Есть ли способ заставить EF правильно выполнить этот запрос?
Даже при выполнении запроса "вручную" средство отображения объектов не появляется:
posInvoices = database.Database.SqlQuery(Of PosModels.Invoice)($"
SELECT
[Extent1].[Invoice_Number] AS [IntegrationKey],
[Extent1].[CustNum] AS [CustomerKey],
[Extent1].[DateTime] AS [CreatedTime],
[Extent1].[Grand_Total] AS [Price],
[Extent1].[Amt_Tendered] AS [Payment],
[Extent1].[Amt_Change] AS [PaymentChange]
FROM [dbo].[Invoice_Totals] AS [Extent1]
").ToList
Это все еще незаполните любые значения для свойства CreatedTime
.Как и в предыдущем запросе, все значения в модели остаются на DateTime.MinValue
.Самые старые данные в базе данных с 2011 года.