質問

私はLinq to Sqlが初めてで、複数のフィールドの組み合わせであるEntityクラスに単一の読み取り専用プロパティを作成することです。具体的には、 、姓、名。

.designer.csファイルを変更することでそれを行う方法はわかりますが、それに触れるつもりはないことを知っています。

動的データで複数の列ではなく単一の列を取得できるようにしようとしています。

役に立ちましたか?

解決

ここでのコツは、 partial class を使用することです。新しい.csファイルを作成し、同じ名前空間にタイプに応じた名前の新しいクラスを追加します:

namespace My.Data.Namespace {
    partial class Employee {
        public string Foo {
            get {return Forename + " " + Surname; } // etc
        }
    }
}

これは、元の(生成された)クラスファイルと組み合わせます。これは、生成されたエンティティ(データコンテキストを含む)に追加機能を追加するための一般的なアプローチです。多数の部分メソッドがLINQ-to-SQLで定義および使用されているため、「部分メソッド」も参照してください。

注意点:dbmlの名前が MySystem.dbml の場合、 MySystem.cs ファイルの作成(おそらく部分クラス用)を避ける );コード生成にバグがあり、これが失敗する可能性があります。別の名前を付けてください。

他のヒント

LINQ selectステートメントで、次のようなものを使用しないでください:

select new {FullName = x.FirstName + " " + x.Surname};

構文が100%であるかどうかはわかりませんが、アイデアを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top