2011-08-17 14 views
1

私はbook "pro asp.net mvc3"からsportsstoreアプリケーションを構築しています。第9章では、画像アップロード用の機能を追加する必要があります。私は自分のドメインオブジェクト "Product"を更新し、データベースにColumnsを追加しました。これらのステップの後で、作者steven sandersonは、dbと私のドメインオブジェクトが適切にマッピングされるように、エンティティフレームワーク概念モデルを更新する必要があることを提案しました。エンティティフレームワークの概念モデルを更新する

私はこの書籍のPOCOオブジェクトとソースコードで開始したので、私の解決策ではsportsstore.edmxファイルがありません。このファイルにはedmxファイルがありません。

私はこのエラーが発生した製品を編集して画像をアップロードしていますか?

データ型nvarchar(max)からvarbinaryへの暗黙的な変換は許可されません。この問合せを実行するには、CONVERTファンクションを使用します。

説明現在のWeb要求の実行中に、未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

例外の詳細:System.Data.SqlClient.SqlException:データ型nvarchar(max)からvarbinaryへの暗黙的な変換は許可されていません。この問合せを実行するには、CONVERTファンクションを使用します。

私のProductクラスが定義されている

として:私のProductテーブルが

enter image description here

+2

ImageMimeTypeをコード内の文字列として宣言しますが、データベースのバイナリフィールドとして宣言しています。 – Oxymoron

答えて

3

として定義されて

public class Product 
{ 
    [HiddenInput(DisplayValue = false)] 
    public int ProductID { get; set; } 

    [Required(ErrorMessage="Please enter a Product Name")] 
    public string Name { get; set; } 

    [Required(ErrorMessage="Please enter product description")] 
    [DataType(DataType.MultilineText)] 
    public string Description { get; set; } 

    [Required(ErrorMessage="Please enter product price")] 
    [Range(0.01, double.MaxValue,ErrorMessage="Please enter positive price")] 
    public decimal Price { get; set; } 

    [Required(ErrorMessage="Please enter product category")] 
    public string Category { get; set; } 

    public byte[] ImageData { get; set; } 
    [HiddenInput(DisplayValue = false)] 
    public string ImageMimeType { get; set; } 
} 

あなたはフォルダ(例えばモデル)を右クリックしてEDMXファイルを生成することができます=>追加=>新しいアイテム=> ADO.NETエンティティデータモデル

データベースでは、あなたの画像はバイナリであり、それは文字列です。 私はちょうど本をGoogleで検索し、私は彼らがそこimageMimeType

PS用VARCHAR(50)を使用することを参照してください。 '説明' フィールドにもデータ型はnvarchar(500)

ソースする必要があります:http://books.google.be/books?id=gzfFQrs_qQAC&pg=PA291&lpg=PA291&dq=sportstore+imagedata+mvc3&source=bl&ots=EXAaipp5VM&sig=bsw0_ARgqwYIlN6EbD47UT9yq6Q&hl=nl&ei=74xLTqfhLI7pOZCo8LUI&sa=X&oi=book_result&ct=result&resnum=1&ved=0CB4Q6AEwAA#v=onepage&q&f=false

+0

はい私はそれを修正しました – najam