また、移行ファイルのデータをSeedメソッドで変換することもお勧めします。
データを更新すると、問題になることはありません、あなただけの下の行のコードに示しますすることができますよう、あなたはまた、SQL文字列でのC#からパラメータを渡すことができます。
Sql("UPDATE TableName SET MyValueInMinutes= -DATEDIFF(MINUTE, CurrentTime, 0)";
問題をデータで読む!実際には、C#でデータの変換を処理する必要はありません。通常、SQLサーバー(ストアドプロシージャと関数とSQLステートメント)のすべてを作成し、必要な時点で移行ファイルから呼び出しますデータは転送される準備ができています。しかし、私はあなたがデータベースプログラマではないと思います、なぜあなたはC#でデータを扱おうとしていますか?
ここでは、行を反復処理する方法の例を示します。テキストを検索し、無料の「AnyText」+カウンタを検索します。
CREATE PROCEDURE sp_FindFreeName
@toBeFindName nvarchar(MAX) OUT
AS
BEGIN
DECLARE @LoopCounter INTEGER
SET @LoopCounter = 1
WHILE EXISTS (SELECT @toBeFindName FROM dbo.MyTable WHERE Name = @toBeFindName)
BEGIN
SET @toBeFindName = 'AnyText', @LoopCounter)
SET @LoopCounter = @LoopCounter + 1
END
END
次に、あなたは、フォームのC#と呼ばれることができます。cSharpNameのC#から与えられた
var cSharpName = string.Empty;
Sql("exec sp_FindFreeName @[email protected]"+ cSharpName +" OUTPUT");
。
3番目の理由は、独自のコード一次移行操作を作成することもできます。あなたはローワンのブログで説明したように、あなたのSqlServerMigrationSqlGeneratorを定義する必要があります。
https://romiller.com/2013/02/27/ef6-writing-your-own-code-first-migration-operations/
結論:
あなたが本当に移行ファイル内のデータを読みたいなら、あなたは、たとえば使用する必要があります:SqlDataReaderとApp.configから接続文字列も読み取る必要があります。
ほとんどの場合、SQL Server内のすべてを実行できます。データ転送SQLスクリプトを作成し、目的の場所から実行するだけです。
拡張機能とSqlServerMigrationSqlGeneratorを使用すると、より洗練された方法でDataReaderを使用できます。
お返事ありがとうございます。あなたが推測したように、私はSQLにはあまり慣れていません(そして私の同僚でもありません)。そして、私はウェブサイト全体をSQLで書くことができますが、C#をもっと便利に選択しました単純なデータベースクエリー(HTMLの解析、不正なHTMLの解析など)以外の言語でも使用できます。マイグレーション '操作 'を見ていきますが、一見すると、データベース接続も提供していません(SQL文字列を盲目的にエクスポートすることはできますか?)。可能であれば、データベースへの明確な接続/トランザクションを作成しないようにしたいと思います。 – youen
@youen次に、移行のためのシードメソッドを使用します。シード・メソッドは、各マイグレーション・レベルで1回のマイグレーション中にX時間と呼ばれます。もしあなたが現在どのレベルで作業しているのかを知るには、通常のようにC#で簡単に使うだけで、データの追加や削除、更新ができます。 –
@youen 1つのことは、Seedメソッドの2つのタイプがあります(InitとMigrationの2種類あります)。マイグレーションシードを使用し、このplzを読んでくださいhttps://blog.oneunicorn.com/2013/05/28/database-initializer-and-migrations-seed-methods/ –