簡體   English   中英

可以從.NET類生成SQL Server數據庫架構嗎

[英]Can SQL Server database schema be generated from .NET classes

我有一些不使用數據庫的舊代碼。 現在可以從現有類中自動生成數據庫模式嗎? 我知道這似乎比通常的DB生成類要反向。

但是,如果有一些簡單的方法可以這樣做。

它不是。 或者,僅是一種非常愚蠢的方式。 沒有附加注釋,.NET包含的信息比db模式少得多。 條件,檢查范圍。 數據類型也丟失。 您如何看待此類代碼會扣除哪些索引? 哎呀,甚至不可能找出一個類/表的主鍵。

繼承是另一個主題。

您可以首先生成模式,但是如果不對類進行大量注釋,就無法真正生成可用於生產環境的數據庫。

當然,稍加思考,您就可以生成一些粗糙的表創建腳本,甚至可以生成存儲過程來支持INSERTS / UPDATES / DELETES(如果需要)。

除非存在精確的一對一映射,否則您將需要手工清理這些腳本。

編輯:進一步詳細說明(與@TomTom的答案一起)

無法自動推斷的事情:

  • 默認列值
  • 計算列(如果有)
  • varchar大小
  • NULL / NOT NULL列
  • 指標

您可以通過一堆工作自動完成的工作(但最好由IMO手動完成):

  • 主鍵分配
  • 外鍵關系
  • 關系

如果您使用的是VS2010,則可能需要使用Entity Framework以及從DbContext繼承的類來研究Code-First開發。 ScottGu 在這里有一個很好的博客文章介紹了如何做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM