我遵循這個https://mva.microsoft.com/en-us/training-courses/implementing-entity-framework-with-mvc-8931?l=mBKHDFC3_9204984382的教程。這是我的代碼使用EF Fluent API創建2個主鍵
namespace FluentAPI
{
class Program
{
static void Main(string[] args)
{
using (var context = new MusicContext())
{
var album = new Album() { Price = 9.95m, Title = "YUhuu" };
context.Albums.Add(album);
context.SaveChanges();
}
}
public class Album
{
public int AlbumId { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
}
public class MusicContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("MusicStore");
modelBuilder.Entity<Album>().HasKey(t => t.AlbumId);
//tell EF to map string into varchar
modelBuilder.Entity<Album>().Property(t => t.Title).IsUnicode(false);
//Album id not going to be identity
modelBuilder.Entity<Album>()
.Property(t => t.AlbumId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
base.OnModelCreating(modelBuilder);
}
public DbSet<Album> Albums { get; set; }
}
}
}
它假設在數據庫中創建一個表,用作爲主鍵。但是當我運行這個程序時,表結果並不是我所期望的。有2個主鍵:和Title
。我只想作爲我的主要關鍵。難道我做錯了什麼?
可以顯示錶結構(SQL)嗎? –
您是連接到現有數據庫還是從代碼創建數據庫?因爲代碼看起來不錯。 – syned
@syned我從代碼 – Intan