問題タブ [linq-to-entities]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linq - LinqToEntities がエンティティの子オブジェクトを取得しない
私は初めて Linq を試していますが、エンティティの子オブジェクトを取得するのに少し苦労しています。部門テーブルと 1 対多の関係を持つコース テーブルがあります (つまり、1 つの部門が 1 つまたは複数のコースを持つことができます)。
特定の部門を選択すると、その特定の部門に関連するコースをグリッドビューにバインドしたいのですが、その特定の部門に関連する多くのコースがある場合でも、coursecount 変数は常にゼロを返します。部門オブジェクトは、コース オブジェクトとは別に正しく設定されているようです。
明らかな何かが欠けていますか?
entity-framework - エンティティ フレームワーク: 1 つの大きなモデルですか、それとも一連の小さなモデルですか?
私たちは最近、エンティティ フレームワークを職場で使用するためのアプローチについていくつかの議論を行っています。かなり大規模で複雑な n 層の Web ベースのアプリケーションがあり、大規模なオーバーホールが予定されています。
問題は、エンティティ フレームワークの使用をどこから開始するかということですが、大きなモデルを 1 つ作成するか、機能/活動に基づく一連の小さなモデルを作成する方がよいかということです。
これについては私個人の意見がありますが、他の人の意見を聞くことに興味があります。
更新 (2008 年 11 月 17 日): 家での小さなプロジェクトのために、1 つのモデルを作成し、それを消去して再作成しています。私は試したことはありませんが、多数のエンティティ タイプが関係している場合、このアプローチは少し難しくなると思います。
また、TFSなどを使用して大規模なチームでefを使用した経験がある人はいますか?
c# - Linq to Entities および連結プロパティ
連結された他の2つのプロパティに基づく既存のエンティティタイプに新しいプロパティを作成できるかどうかは誰にもわかりませんか?
たとえば、My Person エンティティ タイプには、「ID」、「Forename」、「Surname」、「DOB」のフィールドがあります。
「フルネーム」という新しいフィールドを作成したい
したがって、「ID」、「Forename」、「Surname」、「DOB」、「Fullname」になります。
プログラムでLinqを使用してこれを行うことができることを知っています
次に、次のようなものを呼び出します
ただし、Linq to Entities を使用して、概念モデル レベルでこの作業を行いたいと思っています。
c# - Entity Framework の EdmItemCollection で getter および setter アクセス修飾子を見つける
私は自分のエンティティのリポジトリ パターン用の素敵な T4 テンプレートを作成しています。edmx ファイルの xml を手動で解析する代わりに、EdmItemCollection を使用して、概念モデルのオブジェクト グラフ プレゼンテーションを作成します。
このモデルから多くの情報を得ることができました。しかし、Getter および Setter アクセス修飾子を見つける場所が見つかりません。これらは、edmx ファイルの CSDL 部分にあります。
例:
オブジェクト グラフのどこでこの情報を探す必要がありますか?
オブジェクト ツリーを解析する方法の例を次に示します。
私がどちらの方向に向かっているのかが明確になることを願っています。
EdmItemCollection のコードを何度も反映した後、http: //schemas.microsoft.com/ado/2006/04/codegenerationスキーマが読み込まれないため、これらのプロパティは無視されます。
しかし、誰かがこの情報を見つける方法を見つけるのを手伝ってくれることを願っています?
c# - Linq to Entityで最大IDを取得するにはどうすればよいですか?
ID列を持つテーブルUserがありますがUserID
、最大値を返すコードの正しいLinq to Entity行はUserID
何ですか?
私はもう試した:
しかしLast
、Max
サポートされていないようです。
何か案は?
c# - Reference プロパティまたは Load() を呼び出す代わりに、LINQ to Entities クエリを作成して子オブジェクトを直接読み込むにはどうすればよいですか?
私は LINQ to Entities (または Entity Framework と呼ばれるものは何でも) を使用するのが初めてで、次のような多くのコードを書いています。
次に、そのオブジェクトのメソッドを次のように呼び出します。
また
子または関連オブジェクトを取得します。
DB のプロファイルを作成したり、深く掘り下げたりしていませんが、.Load() または *Reference プロパティを呼び出すと、実際には DB に別の呼び出しを行っていると思います。この場合、最初の LINQ 式でこれらのオブジェクトを取得する方法はありますか?
sql - LINQ to Entities でグループ化を最適化する
LINQ to Entities にこのクエリがあります。
私はそれが一種の「悪」クエリであることを知っていますが、管理インターフェースでのみ使用されます。しかし、生成された SQL はまったく恐ろしいものです。この赤ちゃんを見てください。
code>I do not as anyone to explain that query but it would be great to get some tips on how to optimze the query so that it just do a simple regular join. Something like this works as fine if I write the SQL myself.
ところで、私はこのサイトが大好きです。デザインも使い勝手も抜群!うまくいくことを願っています:)
sql - SQLコードの「having」条件をLinqToSQLまたはLinqToEntitesに変換する方法は?
次の SQL コードを Linq To SQL または Linq To Entites に変換する方法を教えてください。
正しい SQL コードは次のとおりです。
Collect から CollectId,url,userid,pubtime を選択 url,collectid,userid,pubtime で pubtime >= (collect d から max(pubtime) を選択、ここで d.url = collect.url ) Collect.pubtime desc で並べ替える
データベース テーブル スクリプトは次のとおりです。
存在する場合 (select * from sysobjects where id = OBJECT_ID('[Collect]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [Collect]
CREATE TABLE [Collect] ( [CollectId] [int] IDENTITY (1, 1) NOT NULL, [Url] [nvarchar] (200) NULL, [UserId] [nvarchar] (50) NULL, [PubTime] [datetime] NULL )
ALTER TABLE [Collect] WITH NOCHECK ADD CONSTRAINT [PK_Collect] PRIMARY KEY NONCLUSTERED ( [CollectId] ) SET IDENTITY_INSERT [Collect] ON
INSERT [Collect] ([CollectId],[Url],[UserId],[PubTime]) VALUES ( 1,'www.sohu.com','Mike','2008-10-10 0:00:00') INSERT [Collect] ([CollectId],[Url],[UserId],[PubTime]) VALUES ( 2,'www.echina365.com','Lily','2008-10-15 0:00:00') INSERT [Collect] ([CollectId],[Url],[UserId],[PubTime]) VALUES ( 3,'www.php.com','Tom','2008-10-20 0:00:00') INSERT [Collect] ([CollectId],[Url],[UserId],[PubTime]) VALUES ( 4,'www.echina365.com','YaoMing','2008-10-23 0:00:00') INSERT [Collect] ([CollectId],[Url],[UserId],[PubTime]) VALUES ( 5,'www.echina365.com','Mike','2008-10-25 0:00:00') INSERT [Collect] ([CollectId],[Url],[UserId],[PubTime]) VALUES ( 6,'www.sohu.com','Jack','2008-10-26 0:00:00') INSERT [Collect] ([CollectId],[Url],[UserId],[PubTime]) 値 (7,'www.echina365.com','Tracy',' 2008-11-2 0:00:00') INSERT [Collect] ([CollectId],[Url],[UserId],[PubTime]) 値 (8,'www.php.com','YaoMing',' 2008-11-5 0:00:00')
SET IDENTITY_INSERT [収集] OFF
c# - ObjectQuery の Execute メソッドをカスタマイズする方法は?
データベースにパーティションのようなデータベース スキーマがあります。
という名前の「パーティション化」テーブルが 1 つありSITE
、他のすべてのテーブルにはそのテーブルへの外部キーがあります ( SITE\_FK
)。
SITE\_ID
プロパティと、このプロパティを設定するコンストラクターを追加する ObjectContext の部分クラスを作成しました。
ここで、いくつかの ObjectContext をインスタンス化した後SITE\_ID
、この ObjectContext で構築されたすべてのクエリがSITE\_FK = SITE\_ID
(ObjectContext に格納されている) それをテストする必要があります。コード内のすべてのクエリで明示的にテストする必要はなく、ObjectQueryで何らかの形で「内部的に」テストするのが最善です。
最初に考えたのは、ObjectQuery.Execute メソッドに機能を追加して、クエリに Where をもう 1 つ追加することですが、これを行う方法が見つかりません。
何か案は?
linq-to-entities - LinqToEntities と外部キー
LinqToEntities を使用しようとしていますが、データ モデルに外部キー フィールドがないことに気付きました。レコードを追加しようとすると、問題が発生するようです。
いろいろ読んでみると、レコードを追加するときに次のようなことができることがわかりました (Product には Categories テーブルへの外部キーがあります)。
これを行うためのより良い方法があると確信しています。しかし、私の質問は本当に、これがLinqToEntitiesでどのように機能するのですか? これは、単純に外部キー (つまり、myProduct.CategoryID = categoryid) を与えるよりもはるかに複雑に思えます。
テーブルに 5 つの外部キーがある場合、それらをリンクするために 5 つのオブジェクトを取得する必要がありますか?
上記を実行することが理にかなっており、メリットがあることはわかりますが、別のテーブルに単一の外部キーを持つデータベースに 1 つのレコードを追加しようとしているだけでは、メリットはありません。