Üdv!
Adott két tábla a minta alapján:
https://learn.microsoft.com/en-us/ef/core/modeling/relationships/one-to…
// classes .cs
public class Blog
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection<Post> Posts { get; } = new List<Post>(); // Collection navigation containing dependents
}
public class Post
{
public int Id { get; set; }
public string Entry { get; set; }
public int BlogId { get; set; } // foreign key
public Blog Blog { get; set; }
}
// repository .cs
public List<Post> GetPosts()
{
return Context.Posts.ToList();
}
// wpf windows .cs
posts = PostsRepository.GetPosts();
dataGrid.DataContext = post;
A post-ok lekérdezésekor ( GetPosts() ) szeretném visszakapni a Blog mező értékeit is (Title).
A dataGrid-ben szépen ott vannak a mezők, de a Blog egy objektum. A Blog.Title mező kellene.
Mi hiányzik?
ez is bent van a dbcontext-ben (itt hibát ír):
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.HasMany(e => e.Posts) # <--- lambda expression: CS1660: cannot convert lambda expression to type string because it is not a delegate type
.WithOne(e => e.Blog)
.HasForeignKey(e => e.BlogId)
.IsRequired();
}
- 243 megtekintés
Hozzászólások
A dataGrid-ben szépen ott vannak a mezők, de a Blog egy objektum. A Blog.Title mező kellene.
WPF-et, Datagridet, stb. tovabbra sem ismerem, de ha csinalsz a Post-ban egy read-only property-t, ami visszaadja a Blog.Title-t, az mukodhet esetleg?
ez is bent van a dbcontext-ben (itt hibát ír):
Az OnModelCreating lehet, hogy elhagyhato, ha nem irsz felul semmit a convention-based discovery szabalyaihoz kepest: https://learn.microsoft.com/en-us/ef/core/modeling/relationships/conven…
- A hozzászóláshoz be kell jelentkezni
Egyik lehetőség, ami működött:
<DataGrid x:Name="dataGrid" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Header="Title" Binding="{Binding Blog.Title}" />
</DataGrid.Columns>
</DataGrid>
- A hozzászóláshoz be kell jelentkezni
Ez jó lehet a linkről, köszi!
public class Blog
{
// Not discovered as reference navigations:
public int Id { get; set; }
public string Title { get; set; } = null!;
public Uri? Uri { get; set; }
public ConsoleKeyInfo ConsoleKeyInfo { get; set; }
public Author DefaultAuthor => new() { Name = $"Author of the blog {Title}" };
// Discovered as a reference navigation:
public Author? Author { get; private set; }
}
public class Author
{
// Not discovered as reference navigations:
public Guid Id { get; set; }
public string Name { get; set; } = null!;
public int BlogId { get; set; }
// Discovered as a reference navigation:
public Blog Blog { get; init; } = null!;
}
- A hozzászóláshoz be kell jelentkezni