これは私がこの質問Entity Framework: Generate Database From Model removes Stored Procedures from Model Storeを見てきましたが、これは解決されていないと思います。フィルタリングのためにSQL Serverで選択して実行する必要がある機能がいくつかあります。私はそのコードを.NETに書くことができなかったので、SQL Serverの関数を関数として書きました。私はモデルファーストを使用していますが、SQLレベルでその関数が必要です。データベースの更新モデルを使用して関数をインポートします。しかし、エンティティデザイナを変更してモデルからデータベースを生成すると、関数のマッピングが消去されます。モデル・ファーストとdbファーストを同時に使用すべきではないことを理解していますが、どうすれば問題を解決できますか?私はC#で書くことができないこのコードを持っています。私はLINQクエリでそれを必要とします。インポートを作成し、データベースの関数にマップするEdmFunction属性を使用してC#メソッドを作成すると機能しますが、モデルとSQL関数の間のリンクが更新時に保持されるように永続化するにはどうすればよいですか? LINQ-to-Entitiesで唯一のオプションに変換できる関数を記述していますか?ここで EFモデル削除モデルからデータベースを生成する関数のインポート
は私のSQL関数create function [dbo].[HammingDistance]
(@first bigint, @second bigint) returns int
as
begin
declare @xor bigint = @first^@second;
declare @one bigint = 1;
declare @diff int = 0;
declare @and bigint;
while (@xor != 0)
begin
set @and = @xor & @one;
if(@and = @one)
begin
set @diff = @diff + 1;
end
set @xor = @xor/2;
end
return @diff;
end
(私はこれはこれを行うための最善の方法ではないかもしれないとSQLの専門家ではないので、もっと良い方法があるなら、私を修正)
です私はDBからASP.NETに何かをインポートすることなく、データベースで実行する必要があります。このコードをLINQ-to-EntitiesのSQLコードに変換するC#に変換する方法があれば、それも歓迎します。
私はデータベースのエキスパートではありません。とにかく、私はデータベースとSQLを扱うことが嫌いです。抽象化の障壁の背後にあり、Entity Frameworkのモデルは、私にとってはちょうど良いものです。 db-firstを実行すると効率が上がるはずですが、実際にSQLを使用するのは嫌いですが、それはパフォーマンスにとって重要なビジネスプロジェクトではありません。私はパワーパックをインストールしましたが、本当に何をすべきかわかりません。モデルからデータベースを生成するには、新しいダイアログが表示されますが、そこに何を設定するか変更するかはわかりません。 –