F #에서 SqlDataConnection 형식 공급자를 사용하여 C #에 정의 된 엔터티 프레임 워크 코드 첫 번째 모델을 사용하여 만든 데이터베이스에 액세스하려고합니다.
public class Tag
{
[Required]
public int TagId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Bookmark> TagBMs { get; set; }
public Tag()
{
TagBMs = new HashSet<Bookmark>();
}
}
public class Bookmark
{
[Required]
public int BookmarkId { get; set; }
[Required]
public string Url { get; set; }
[Required]
public DateTime DateAdded { get; set; }
public virtual ICollection<Tag> BMTags { get; set; }
public Bookmark()
{
BMTags = new HashSet<Tag>();
}
}
public class BookmarksContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder builder)
{
builder.Entity<Bookmark>().HasMany(b => b.BMTags).WithMany(t => t.TagBMs).Map(cs =>
{
cs.MapLeftKey("TagId");
cs.MapRightKey("BookmarkId");
cs.ToTable("BookmarkTag");
});
base.OnModelCreating(builder);
}
public DbSet<Bookmark> Bookmarks { get; set; }
public DbSet<Tag> Tags { get; set; }
}
C #에서 데이터베이스에 액세스 할 때 태그 개체에는 "TagBMs"속성이 있고 책갈피에는 태그에 태그를 추가하고 태그에 책갈피를 추가하는 데 사용할 수있는 "BMTags"속성이 있습니다. 그러나 F #에서 동일한 데이터베이스에 액세스하려고하면 이러한 속성이 나타나지 않습니다. 대신 Bookmark 개체에는 링크 테이블에서 데이터를 반환하는 "BookmarkTag"속성이 있습니다. F #에서 올바른 속성을 얻으려면 무엇을 변경해야합니까? 다음과 같이 SqlDataConnection 유형을 설정했습니다.
type dbSchema = SqlDataConnection<"""Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=DatabaseModelAndMigrations.BookmarksContext;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False""">
SQL 형식 공급자를 사용하지 말고 F # 코드에서 C # EF DbContext를 사용하십시오.
훨씬 쉽고 간단 할 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다