したがって、毎週更新される 2 つのデータベースと 1 つの SQLite ファイルを取得しました (したがって、この更新を週に 1 回実行する必要があります)。そしてSQLサーバー(ただし、現在はローカルテストなどのためだけにSQLfileを使用しています)。ただし、SQLiteファイルからSQLserverにすべてのデータをコピーする簡単な方法を探しています。10個のクラスがあり、両方のデータベースに存在しますが、sqliteには最初に大文字がなく、sqlserverには大文字がありません。
id、name、lastname を持つ sqlite に person テーブルがあります。SQLserver では、テーブルは Person (大文字) と呼ばれ、列は Id Name と Lastname です。SQlite ファイルはサードパーティから提供されたもので、サードパーティが何をするかはわかりません。SQL サーバーは Code First EF で作成されています。(そして、私はすべてをキャメルケースにすることを好みます)。
すべてのデータをコピーする簡単な方法はありますか?クラスのプロパティ ループを探してから、たとえば下げる方法を探していました。
ForEach(var person in SQLiteDB.persons)
{
Person thenewperson = new Person();
foreach (var prop in person.GetType().GetProperties())
{
// Here I get stuck I want something like
if(thenewperson.Haspropertie.ToLower(prop.GetName.ToLower) // This is incorrect but I think you ll understand if we do a ToLower then we can get it to work. Since only capitals are the things that are different.
{
//Then we copy the data to "thenewperson"
}
}
SQlserverDB.Persons.AddorUpdate(thenewperson) // Not totaly correct but you get the point.
}
プロパティをループする方法をグーグルで検索しましたが、データをコピーする良い方法を見つけることができませんでした。また、VS 2012 を SQLite で動作するように修正しようとして頭痛がしましたが、ADO.net が機能していないようで、VS2010 を再度インストールする必要がありました (現在両方を実行しています)。
他に質問がある場合は、お気軽に質問してください。
編集:ナビゲーションプロパティもあることに言及するのを忘れていました。(パーソンアビリティのように)。これもコピーする必要があります