0

次のコードを使用して、クライアント側で FullName を使用して Service-Context を拡張しています。

public partial class Customer {
    public string FullName
    {
        get
        {
            return string.Concat(LastName, (FirstName == "" ? "" : ", "), FirstName);
        }
    }
}

AddOBject メソッドを使用して新しいオブジェクトをコンテキストに追加する必要が生じるまでは、これで問題なく動作します。例外をスローします。FullName 拡張機能を削除すると、AddObject メソッドによって新しいオブジェクトがデータベースに保存されます。コンテキストを拡張し、更新および挿入可能にする最良の方法は何ですか?

編集: DataServiceRequest 例外:

System.Data.Services.Client.DataServiceRequestException was not handled by user code.
  HResult=-2146233079
  Message=Fehler beim Verarbeiten dieser Anforderung.
  Source=Microsoft.Data.Services.Client.WindowsStore
  StackTrace:
       at System.Data.Services.Client.SaveResult.HandleResponse()
       at System.Data.Services.Client.BaseSaveResult.EndRequest()
       at System.Data.Services.Client.DataServiceContext.EndSaveChanges(IAsyncResult asyncResult)
       at Pointsale.Client.Service.PointsaleEntities.<SaveChanges>b__0(IAsyncResult asResult) in c:\Users\Jan\Desktop\pointsale_worksapce\pointsale.client\Helper\TenantHelper.cs:line 98
       at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
  InnerException: System.Data.Services.Client.DataServiceClientException
       HResult=-2146233079
       Message=<?xml version="1.0" encoding="utf-8"?><m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><m:code /><m:message xml:lang="de-DE">Error occurred while processing this request.</m:message></m:error>
       StatusCode=400
       InnerException: 

そして、SaveChanges メソッドをオーバーライドして非同期にします。

public async Task<DataServiceResponse> SaveChanges()
{
    var queryTask = Task.Factory.FromAsync(this.BeginSaveChanges(null, null), asResult =>
    {

        var result = this.EndSaveChanges(asResult);
        return result;

    });
    return await queryTask;
}

EndSaveChanges でエラーが発生します。

4

0 に答える 0