Первый код разработки с использованием EF многие-многие, как связать данные с повторителем? - PullRequest
0 голосов
/ 21 октября 2011

Отношение BlogPost и Category-many, если набор данных напрямую связывает повторитель, как теперь использовать код, впервые разработанный для связывания повторителя?

public class BlogPost
    {
        public int BolgID
        {
            get;
            set;
        }

        public int ID
        {
            get;
            set;
        }

        public string Title
        {
            get;
            set;
        }

        public virtual ICollection<Category> Category
        {
            get;
            set;
        }
    }

public class Category
    {
        public int ID
        {
            get;
            set;
        }

        public string Title
        {
            get;
            set;
        }

        public virtual ICollection<BlogPost> BlogPost
        {
            get;
            set;
        }
}



   using(MyDemoContext context = new MyDemoContext())
                {
                    DbSet<BlogPost> post = context.Set<BlogPost>();
                        var v = post.Include(p=>p.Category).Where(p=>p.ID==5).ToList();
                        Repeater1.DataSource = v;
                        Repeater1.DataBind();
                }

BlogID BlogTitle CategoryTitle // Название категории

        </HeaderTemplate>
        <ItemTemplate>
            <tr>
                <td><%# Eval("ID")%></td>
                <td><%# Eval("Title")%></td>
                <td><%# Eval("")%></td>//here how to bind Category.Ttitle?
            </tr>
        </ItemTemplate>
        <FooterTemplate>
        </table>
        </FooterTemplate>

        </asp:Repeater>

Как получить этот результат:

BlogID  BlogTitle  CategoryTitle

   5       test         C#

   5       test         asp.net

   5       test         VB

1 Ответ

0 голосов
/ 21 октября 2011

Catgory и BlogPost имеют отношение ко многим, поэтому в блоге будет несколько категорий. Я не уверен, какое название категории вы хотите показать здесь - обычно я, вероятно, показываю разделенный запятыми список (или, возможно, маркированный список), это может быть достигнуто путем размещения повторителя. Например,

<ItemTemplate>
   <tr>
     <td><%# Eval("ID")%></td>
     <td><%# Eval("Title")%></td>
     <td>
        <asp:Repeater runat="server" ID="C" DataSource='<%# Eval("Category") %>'>
           <ItemTemplate><%# Eval("Title") #></ItemTemplate>
           <SeparatorTemplate>, </SeparatorTemplate>
        </asp:Repeater>
     </td>
   </tr>
</ItemTemplate>

Диклаймер: непроверенный код

Нет выше шаблона будет генерировать разделенный запятыми список, но вы можете настроить макет в соответствии с вашими потребностями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...