แพคเกจการโยกย้ายรหัสเอนทิตีเฟรมเวิร์กครั้งแรก

แพ็คเกจ nuguet สำหรับ EntityFramework (6.1.3) จะติดตั้งเครื่องมือบางอย่างที่คุณสามารถดำเนินการได้จากคอนโซลตัวจัดการแพ็คเกจ nuget (เช่น AddMigration, Update-Database ฯลฯ) สิ่งเหล่านี้จะพร้อมใช้งานหากคุณใช้ nuget และโหลดไฟล์ .ps ที่เหมาะสมแล้ว

ฉันกำลังแก้ไขการพึ่งพาโครงการและโซลูชันด้วย paket แทน nuget ดังนั้นคำสั่งเหล่านั้นจึงไม่พร้อมใช้งาน ฉัน.

มีทางเลือกอื่นในการรันสคริปต์เหล่านั้นโดยไม่ต้องกลับไปใช้ nuget หรือไม่?


person paudirac    schedule 16.12.2015    source แหล่งที่มา


คำตอบ (3)


ดังที่ @ErikEJ กล่าวถึง คุณสามารถใช้การโยกย้าย.exeจากบรรทัดคำสั่ง น่าเสียดาย (จากเอกสาร):

ยูทิลิตี้ทั้งหมดได้รับการออกแบบมาให้ทำคือดำเนินการย้ายข้อมูล ไม่สามารถสร้างการโยกย้ายหรือสร้างสคริปต์ SQL ได้

ดังนั้นคุณจึงสามารถดำเนินการย้ายข้อมูลที่มีอยู่ได้ แต่คุณไม่สามารถสร้างใหม่ด้วยเครื่องมือนี้ได้ นั่นทำให้การโยกย้าย.exe เป็นการแทนที่เครื่องมือที่ EF มอบให้ใน Package Manager Explorer ได้ค่อนข้างแย่

ฉันพยายามนำเข้าไฟล์ EntityFramework.psd1 ด้วยตนเองใน Package Manager Console:

PM> Import-Module ".\packages\EntityFramework\tools\EntityFramework.psd1"

แม้ว่าสิ่งนี้จะทำให้คำสั่ง Enable-Migrations พร้อมใช้งาน แต่การรันก็ทำให้เกิดข้อผิดพลาดต่อไปนี้:

ไม่มีการติดตั้งแพ็คเกจ

ไม่ได้ติดตั้งแพ็คเกจ EntityFramework ในโครงการ 'Foo'

ฉันเดาว่าทั้งหมดนี้คงจะทำงานได้ดีขึ้นกับ EF7 แต่สำหรับตอนนี้ ดูเหมือนว่าฉันจะต้องทิ้ง Paket ไปเลย หรือมี Frankenstein ของทั้ง Paket และ Nuget เพื่อให้งานนี้สำเร็จ

person mikesigs    schedule 22.01.2016

ใช่ คุณเรียกใช้โยกย้าย.exe จากบรรทัดคำสั่ง ซึ่งจะรวมอยู่ในแพ็คเกจ NuGet ในโฟลเดอร์เครื่องมือ

https://msdn.microsoft.com/en-us/data/jj618307.aspx

person ErikEJ    schedule 16.12.2015

จากปัญหา Paket การย้ายข้อมูลโค้ด Entity Framework ก่อน:

คำสั่ง EF จะไม่ปรากฏในคอนโซล VS จนกว่าฉันจะเพิ่ม version_in_path: true ใน paket.dependencies:

nuget EntityFramework ~> 6.2 version_in_path: true
person cadull    schedule 20.05.2020