1

「Customers」というテーブルで作成されたモデルがあります。

次のフィールドが含まれています。

  • CustomerProfileID
  • 顧客名
  • 生年月日
  • 住所(1
  • ジップ
  • CreatedOn
  • によって作成された

テーブルを検索するストアドプロシージャ(CustomerProfiles_Search)の「関数インポート」を実行しました。(機密情報のため、Sprocを投稿できません)。「コレクションを返す」は「エンティティ:CustomerProfile」に設定されています。次を返します。

  • 顧客名
  • 生年月日
  • 住所(1

今ここで私は混乱します。 検索するフィールドを渡してから、リストを返す「ゲートウェイ」に渡すコントローラーがあります。

私のコントローラー:

public ActionResult GetRowCount(string CustomerName, string BirthDate, string Address1, string City, string State, string Zip)
{
    List<CustomerProfile> searchResults = CustomerProfileGateway.Search(CustomerName, BirthDate, Address1, City, State, Zip);

    int count = searchResults.Count();
    string rowCount = count.ToString();

    if (Request.IsAjaxRequest())
        return Content(rowCount);
    else
        return RedirectToAction("Index", "OneView");
}

... CustomerProfileGateway.csファイル内:

public static List<CustomerProfile> Search(string CustomerName, string BirthDate, string Address1, string City, string State, int Zip)
{
    using (ModelEntities context = new ModelEntities())
    {
        return context.CustomerProfiles_Search(CustomerName, BirthDate, Address1, City, State, Zip).ToList();
    }
}

ただし、結果をリストに出力しようとすると、次の場合にエラーが発生します。

The data reader is incompatible with the specified 'SVPModel.CustomerProfile'. A member of the type, 'CustomerProfileID', does not have a corresponding column in the data reader with the same name.

返されるもののモデルを作成する必要があると思います。

私は以下を作成しました:

namespace Project.ABC.Objects
{
    class SearchModel
    {
            public class SearchResults
            {
                public string CustomerName { get; set; }
                public string BirthDate { get; set; }
                public string Address1 { get; set; }
            }
    }
}

しかし、私はこれを行う方法がわかりませんか?誰かが私がここで間違っていることを教えてくれませんか。どんな助けでも大歓迎です。

4

1 に答える 1

0

問題は、sprocがにマップする必要があると言って、必要なすべての列を返さないことですCustomerProfile

からプロパティを読み取ろうとすると、DataReaderという列が見つからないためCustomerProfileID、次のメッセージが表示されます。

タイプ'CustomerProfileID'のメンバーには、同じ名前の対応する列がデータリーダーにありません

よさSearchResultsそうだ。「ReturnsaCollectionOf」を「Entities:SearchResults」に設定するだけです。

于 2012-04-04T17:55:59.983 に答える