2011-07-22 8 views
1

私はこれについて移動する方法がわからないよ、WCF SQL挿入GUID変換エラー

私はWCFを使用して、私のユーザーのために一意の識別子を追加したい

と私は私のクライアントにGUIDを追加するために行くとき、それは、このエラーがスローされますDataContextの

エラー2
引数1: 'ServiceFairy.client' C 'に可能System.Guid' から変換することはできません:プロジェクト\ PremLeague \ ServiceFairy \ Service1.svc \ Visual Studioの 2010 \ \ Users \ユーザージョン\ドキュメント.cs

お手伝いできますか?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.ServiceModel.Web; 
using System.Text; 
using System.Data.SqlClient; 
using System.Diagnostics; 

namespace ServiceFairy 
{ 
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class  name "Service1" in code, svc and config file together. 
public class Service1 : IService1 
{ 
    public List<match> GetAllMatches() 
    { 
     matchtableDataContext context = new matchtableDataContext(); 
     var matches = from m in context.matches orderby m.Date select m; 
     return matches.Take(100).ToList(); 
    } 

    public List<premtable> GetTable() 
    { 
     premContext context = new premContext(); 
     var table = from user in context.premtables orderby user.ID select user; 
     return table.Take(100).ToList(); 
    } 

    public Dictionary<Guid, Uri> _clientUris = new Dictionary<Guid, Uri>(); 

    public void Subscribe(Guid clientID, string uri) 
    { 
     ClientsDBDataContext context = new ClientsDBDataContext(); 
     context.clients.Insert(clientID);   
    }  
+3

サービスフェアリー? ... –

+0

あなたの質問は不明です –

+4

これはなぜWCFと関係があると思いますか? –

答えて

2

問題は、この行では、あなたの購読方法である:

context.clients.Insert(clientID); // error: clientID is the wrong type 

代わりにあなたがタイプServiceFairy.clientのオブジェクトを渡すべきであるときは、()を挿入するタイプGUIDのclientIDを渡しています。

新しいclientオブジェクトを作成し、それを保存する必要があるように見えます:

var client = new ServiceFairy.client() { ClientID = clientID }; // TODO: set other properties 
context.clients.Insert(client); 

TODOは、あなたがあまりにも他のclientプロパティを設定する必要があり、示しています。

+0

助けてくれてありがとうKeith私は本当にこれを感謝します、私はこの点から先に取り組んでいきます。編集前に正しいオブジェクトを渡すことができなかった問題があることを知っていました。 –

+1

問題はありません。また、clientIDで行っていることが正しいことを確認してください。 Subscribeの呼び出し側がclientIDを設定することを前提としていますが、通常、これらのフィールドはInsert中に自動生成されます。あなたのデザインが求めているものが不明です。 – Keith

2

次のようにエラーがある:

エラー2
引数1: 'ServiceFairy.client' C 'に可能System.Guid' から変換することはできません。Visual Studioの \ \ Users \ユーザージョン\ドキュメント2010 \プロジェクト\ PremLeague \ ServiceFairy \ Service1.svc.csこれを読ん36 44 ServiceFairy

、我々は持っている:

  1. 引数1に問題があります。記述された行のコードを調べると、最初の引数が 'clientId'であることがわかります。
  2. 'clientId'オブジェクトのタイプは 'System.Guid'です。
  3. 最初のオブジェクトは 'ServiceFairy.client'タイプである必要があります。
  4. システムは、「System.Guid」を「ServiceFairy.client」に魔法のように変換することはできません。

解決策は、代わりに 'ServiceFairy.client'オブジェクトを取得する方法を理解することです。

+0

ありがとう、私はちょうど私がそれについて行く方法を知っていなかったエラーを理解していた、私はGUIDを渡すcouldntを知っていたよりむしろ私がやっていたことを説明しようとしている、 –

関連する問題