我有一個父對象簿,該對象的屬性是發佈者。每當我做一本書時,即使發佈者已經存在,它也會添加一個新的發佈者。有人能告訴我如何添加該書,而不是再次添加發布者,只需引用現有的發佈者?我正在使用的代碼如下...在此先感謝!EF4代碼中的1對1對象關係代碼優先
public class Book
{
public int BookID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime CreateDate { get; set; }
public virtual Publisher Publisher { get; set; }
}
public class Publisher
{
public int PublisherID { get; set; }
public string Address { get; set; }
}
public class SqlCEDataStore : DbContext
{
public DbSet<Book> Books { get; set; }
public DbSet<Publishers> Publishers { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.IncludeMetadataInDatabase = false;
}
}
public class TimeSinkRepository : IRepository<Book>
{
private static SqlCEDataStore context = new SqlCEDataStore();
public int Add(Book entity)
{
context.Books.Add(entity);
return context.SaveChanges();
}
}
var book = new Book()
{
Title = "New Title",
Description = "New Description",
CreateDate = DateTime.Now,
Publisher = new Publisher() { PublisherID = 1 }
};
var repository = new BookRepository();
var result = repository.Add(book);
我試過這個,但是得到了下面的錯誤:「ObjectStateManager不包含一個ObjectStateEntry,它引用了一個'Blah.Publisher'類型的對象。」有任何想法嗎? – 2010-09-03 03:56:11