WebApi 2.2 サービスを作成しており、上記のテクノロジを使用しています。バックエンド データストアは MySql 5.6 です。データ ストアを操作するために、MySql 用の dotConnect を使用しています。データベースには、タイプが Timestamp の RowVersion 列があります。EF でモデルを正常に生成しましたが、RowVersion が DateTime に設定されていることに気付きました。WebApi を実行すると、次のランタイム例外が発生するため、Timestamp が使用できないため、型を DateTimeOffset に変更する必要があります。
このアプリケーションでは、同時実行処理のために ETag を含む RowVersion を使用します。したがって、アプリケーションでは RowVersion のみを読み取ります。挿入または更新が発生するたびに、データベースは RowVersion を自動的に更新します。
この問題を修正する方法がわかりません...おそらく、モデルの RowVersion が Int64 になるように自動型変換を追加する方法があり、Timestamp.value を私たちの応用。私たちはそれを読んでいるだけなので、これは合理的に思えます。
EF モデルで RowVersion を Int64 に変更してアプリケーションをビルドすると、次のエラーが表示されます。
エラー 1 エラー 2019: 指定されたメンバー マッピングが無効です。タイプ 'Model.customer' のメンバー 'Version' のタイプ 'Edm.Int64[Nullable=True,DefaultValue=]' は 'Devart.Data.MySql.timestamp[Nullable=True,DefaultValue=,Precision=0] と互換性がありません]' タイプ 'Model.Store.customers' のメンバー 'Version' の。C:\PROJECTS\ServiceMySql\ServiceMySql\Models\Model.edmx 898 17 ServiceMySql
この問題を解決する方法を見つけるために、ご協力をお願いします。
お時間をいただき、ご提案いただきありがとうございます。
マイク
この投稿の冒頭で述べた例外:
System.ArgumentException はユーザー コードによって処理されませんでした
HResult=-2147024809 Message=The type 'System.Nullable 1 configurationCallback) at XXXXServiceMySql.WebApiApplication.Application_Start() in c:\PROJECTS\XXXXServiceMySql\XXXXServiceMySql\Global.asax.cs:line 17 InnerException :1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' of property 'Version' in the 'XXXXServiceMySql.Models.customer' type is not a supported type. Change to use 'System.DateTimeOffset' or ignore this type by calling Ignore<XXXXServiceMySql.Models.customer>() on 'System.Web.OData.Builder.ODataModelBuilder'. Parameter name: navigationProperty Source=System.Web.OData
ParamName=navigationProperty StackTrace: at System.Web.OData.Builder.EntityTypeConfiguration.AddNavigationProperty(PropertyInfo navigationProperty, EdmMultiplicity multiplicity, Boolean containsTarget) at System.Web.OData.Builder.EntityTypeConfiguration.AddNavigationProperty(PropertyInfo navigationProperty, EdmMultiplicity multiplicity) at System.Web.OData.Builder.ODataConventionModelBuilder.MapEntityType(EntityTypeConfiguration entity) at System.Web.OData.Builder.ODataConventionModelBuilder.MapType(StructuralTypeConfiguration edmType) at System.Web.OData.Builder.ODataConventionModelBuilder.MapTypes() at System.Web.OData.Builder.ODataConventionModelBuilder.GetEdmModel() at XXXXServiceMySql.WebApiConfig.GenerateEdmModel() in c:\PROJECTS\XXXXServiceMySql\XXXXServiceMySql\App_Start\WebApiConfig.cs:line 89 at XXXXServiceMySql.WebApiConfig.Register(HttpConfiguration config) in c:\PROJECTS\XXXXServiceMySql\XXXXServiceMySql\App_Start\WebApiConfig.cs:line 55 at System.Web.Http.GlobalConfiguration.Configure(Action