0

以下のコードからこのエラーメッセージが表示され続けます。私は何を間違っていますか?

LINQ to Entities はメソッド 'System.String ToString(System.Object)' メソッドを認識せず、このメソッドはストア式に変換できません。

var pros = from programs in db.Programs
           select new {
               programs.ProgramID,
              val = (programs.ProgramShortName + " On: " +  (Convert.ToString(programs.ProgramStartDate) ?? ""))
                           };

lbPrograms.DataTextField = "val";
lbPrograms.DataValueField = "ProgramID";
lbPrograms.DataSource = pros;
lbPrograms.DataBind();
4

1 に答える 1

4

それは認識しませんstring Convert.ToString(object)...だから...それを使用しないでください。直接試すこともでき.ToString()ますが、率直に言って、次を選択します。

...
select new {
          programs.ProgramID,
          programs.ProgramShortName,
          programs.ProgramStartDate }

ローカルでの文字列化について心配します。または、少なくとも別のプロジェクション (これを構成から遅延反復AsEnumerable()に変更することに注意してください):

var formatted = from programs in pros.AsEnumberable()
                select new {
                 programs.ProgramID,
                 val = (programs.ProgramShortName
        + " On: " +  (Convert.ToString(programs.ProgramStartDate) ?? "")) };

にバインドしformattedます。これにより、3 つの列に対してクエリが実行されますが、ローカルでフォーマットされます。

于 2012-04-23T10:35:21.220 に答える