0

データベース内のテーブルに画像を追加しようとしていますが、WCF サービスを使用しているときに追加できないようです

以下のコードはエラーになります

    private CRMEntities _crm;
    private readonly Uri _uri = new Uri("http://localhost/CRMService.svc");

    //Adds a new image to database
    public bool AddImage(byte[] imagefile, int epid)
    {
        if (imagefile.Equals(null) || epid.Equals(null)) return false;
        _crm = new CRMEntities(_uri);
        var i = new Image { ImageFile = imagefile, EP_ID = epid };
        _crm.AddToImages(i);
        _crm.SaveChanges();
        return true;
    }

スクリーンショット:

ここに画像の説明を入力

しかし、これに変更すると問題なく保存されます

        if (imagefile.Equals(null) || epid.Equals(null)) return false;
        var crm = new CRMData.CRMEntities(System.Configuration.ConfigurationManager.ConnectionStrings["CRMEntities"].ToString());
        var i = new CRMData.Image { ImageFile = imagefile, EP_ID = epid };
        crm.AddToImages(i);
        crm.SaveChanges();
        return true;

編集

しかし、それは他のクラスで動作します。

お気に入り

private CRMEntities _crm;
    private readonly Uri _uri = new Uri("http://localhost:1677/CRMService.svc");

    //METHODS

    //SAVE
    public bool AddEmailProblem(string description, DateTime datecreated, int clientid, string mailId)
    {
        if (description == null || clientid == 0 || mailId == null) return false;
        _crm = new CRMEntities(_uri);
        var objep = new EmailProblem
        {
            Description = description,
            DateCreated = datecreated,
            CLIENT_ID = clientid,
            Mail_ID = mailId
        };
        _crm.AddToEmailProblems(objep);
        _crm.SaveChanges();
        return true;
    }

DBに保存します。

私が使用している接続文字列は -

<connectionStrings>
<add name="CRMEntities" connectionString="metadata=res://*/CRM.csdl|res://*/CRM.ssdl|res://*/CRM.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLExpress;Initial Catalog=CRM;Persist Security Info=True;User ID=sa;Password=Server01;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
<add name="CRM" connectionString="Data Source= .\SQLExpress;Initial Catalog=CRM;Persist Security Info=True;User ID=sa;Password=Server01" providerName="System.Data.SqlClient" />

4

1 に答える 1

1

回答全体を編集しました...

private readonly Uri _uri = new Uri("http://localhost/CRMService.svc");

DB 接続文字列ではなく、サービス URI です。

connectionString "CRMEntities" の構成ファイルを確認します。

コードを呼び出します:

 private readonly string _connectionString= "<your actual connection string>";

    //Adds a new image to database
    public bool AddImage(byte[] imagefile, int epid)
    {
        if (imagefile.Equals(null) || epid.Equals(null)) return false;
        _crm = new CRMEntities(_connectionString);

DB 接続文字列を単純にサービス URI に置き換えることはできません。これは不可能です。

于 2012-09-07T08:46:37.037 に答える