2

我有一个程序逻辑问题..

好的,让我们开始吧。

我在一个模型中有 2 个类。

namespace Korbball.Models
{
public class Clubs
{
    public int id { get; set; }
    public string name { get; set; }
    public string state { get; set; }
    public string description { get; set; }
}

public class ClubDetails : Clubs
{
    public string website { get; set; }
    public string banner { get; set; }
}

}

第一步,我将使用俱乐部类的条目来调用所有俱乐部的概述。如果我点击一个俱乐部,会有一个链接到 -> 网站/俱乐部/详细信息/ID

现在,我将在此视图中显示来自 Clubs 和 ClubDetails 的所有数据。

为此的数据存储在数据库中。

    private static List<Clubs> clubs = new List<Clubs>();
    KorbballEntities db = new KorbballEntities();

    public KorbballRepository()
    {
        var clubsdata = db.Korbball_Clubs.ToArray();
        foreach (var c in clubsdata)
        {
            clubs.Add(new Clubs { id = c.ClubId, name = c.Name, state = c.State });
        }
    }

所以我只得到俱乐部信息的数据。有关详细信息,我应该生成一个包含所有信息的新列表吗?

希望有人知道我的意思......不能更好地宣布它......

谢谢!

更新:好的,我认为问题是,我找不到可以教我 mvc 逻辑的人 =D

我有很多俱乐部。这个俱乐部有基本信息(姓名、身份证、州)

这个俱乐部也有详细的信息,如描述、横幅、网站等。

我做了一个模型类

ClubModel.cs

 public class Clubs
{
public int id { get; set; }
public string name { get; set; }
public string state { get; set; }
public string description { get; set; }
}

public class ClubDetails : Clubs
{
public string website { get; set; }
public string banner { get; set; }
}

我将显示所有俱乐部的列表以及站点/俱乐部的基本信息

如果我进入详细视图,Clubs/Details/Id 我将显示所有信息(基本 + 详细)

您的解决方案似乎很酷。我在互联网上找不到任何想法如何在这种情况下建立“最佳实践”方法。

4

1 回答 1

0

Club 和 Details 之间的关系是一对一的吗?这听起来像是基于您描述所有内容的方式,但这并没有多大意义,因为就像有人提到您从 Club 继承的一样,因此您只需加载 Club_Details 并自动获取 Club 列。

如果您的关系是一对多的,最简单的方法是将关联构建到您的模型中(数据库上的外键关系),然后使用“包含”告诉实体框架您想要关联的实体。我很快把它放在一起,所以语法可能不完美,基本的想法是查看“包含”。

这个逻辑是有缺陷的,因为它加载了许多俱乐部,然后加载了俱乐部的详细信息,你想解决这个问题。

private static List<Clubs> clubs = new List<Clubs>();
private List<Club_Details> clubDetails = new List<Club_Details>();
// make a view model class that contains club and club details (one to many)
private ClubData clubdata = new ClubData();

public KorbballRepository()
{
    var clubsdata = db.Clubs.Include("Club_Details").ToArray();
    foreach (var c in clubsdata)
    {
        clubs.Add(new Clubs { id = c.ClubId, name = c.Name, state = c.State });

        /* sample of how to reference the Included entities use the association name
           of Club_Details if it were a one to many relationship, ideally you
           would create a view  model or something with the two classes defined
           and one club and list of club details, then define a list of the view
           model for all Clubs */

         clubDetails = new List<Club_Details>();

         foreach (var d in c.Club_Details)
         { 
              clubDetails.Add(new Club_Details { 
                   website = d.website.ToString(), 
                   banner = d.banner.ToString() 
               });;
          }

    /* load the data to the view model class and loop again */
    }

}
于 2013-08-06T15:29:47.237 回答