MVC4电子投标系统的EF代码模型

本文关键字:EF 代码 模型 系统 MVC4 | 更新日期: 2023-09-27 18:05:34

我的建筑投标板应用程序在如何使用>> MVC4中的实体框架构建我的模型方面遇到了一些混乱

描述如下:在我的简单成员角色表中,我有:(管理、招标、提供者成员)

管理:有权将普通用户角色从"会员"更改为"提供商",并在招标组织批准后证明中标人。

供应商:普通用户将被分配为"成员",并将被管理部门激活为供应商,然后他们可以投标任何他们想要的项目。

项目:由招标组织创建用户每个项目都有很多要求

需求:每一个与项目相关。

投标:这里我的问题实际上是投标是"国家的部门,必须在系统中设置",但每个部门显然有许多用户"经理,假设每个部门有5个",他们会投票给供应商。经理们只能投票给隶属于同一部门的供应商。

我想念其他表吗?

我真的不知道如何结构所有的表与关系,也与(UserprofileTbale,和角色表):这是我的尝试,帮我一下。

我DBContext

:

 public class ProjectContext : DbContext
{
    public ProjectContext()
        : base("OTMSProjects")
    {
    }
    public DbSet<ProjectEntry> Entries { get; set; }
    public DbSet<Requiernments> RequiernmentEntries { get; set; }
    public DbSet<Supplier> Suppliers { get; set; }
    public DbSet<Tender> Tenders { get; set; }
    public DbSet<UserProfile> UserProfiles { get; set; }
    //public DbSet<UserRoles> UserRoles { get; set; } // do I have to set this too?
}}

我的表:

     public class ProjectEntry
   {
    [Key]
    public int ID { get; set; }
    [Required]
    public string ProjectName { get; set; }
    public string Description { get; set; }
    public string Statue {get; set; }
    public string UplodedFiles { get; set; }
    public string Budget { get; set; }
    public string EstimateTime { get; set; }
    public string Criterias { get; set; }
    public DateTime? DueDate { get; set; }

    // Relations  with others tables
    public virtual Tender Tender { get; set; }// every  project have only one tender
    public virtual ICollection<Supplier> Suppliers { get; set; } // every  project have one or more  supplier 
    public virtual ICollection<Requiernments> Requirements { get; set; }
} 

........

   public class Requiernments
    {
                            [Key]
                            public int RequiernmentId { get; set; }
                            public int ID { get; set; }
                            public string RequiernmentName { get; set; }
                            public string RequiernmentType { get; set; }
                            public string RequiernmentPrioritet { get; set; }
                            public float RequiernmenWhight { get; set; }
                            public string ProviderAnswer { get; set; }
                            public string ProviderComments{ get; set; }
                            public virtual ProjectEntry Projects { get; set; } 

}

........

 public class Supplier
   {
    [Key]
    public int SupplierId { get; set; }
    public int ID { get; set; }
    public int SupplierName { get; set; }
    public int SupplierCat { get; set; }
    public virtual ICollection<ProjectEntry> Projects { get; set; }
}

……

  public class Tender
   {
    [Key]
    public int TenderId { get; set; }
    public string TenderName { get; set; }
    public string TenderMinstry{ get; set; }
    public int ID { get; set; }//link to project 
    public int UserId { get; set; }  //this links to the userid in the UserProfiles table
    public virtual ICollection<ProjectEntry> Projects { get; set; }
    //public virtual ICollection<UserProfile> Userprofile { get; set; } 
    public virtual UserProfile UserProfile { get; set; }
}

在Mvc4中默认创建的我的AccountModel中的成员表(我只添加RoleTable:

)
  [Table("UserProfile")]
  public class UserProfile
  {
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string EmailAddress { get; set; }
    public ICollection<UserRoles> UserRoles { get; set; }
}
   [Table("webpages_Roles")]
   public class UserRoles
  {
    [Key]
    public int RoleId { get; set; }
    public string RoleName { get; set; }
    [ForeignKey("UserId")]
    public ICollection<UserProfile> UserProfiles { get; set; }
   }

我也不确定如何将用户配置文件与投标表和供应商表联系起来?

MVC4电子投标系统的EF代码模型

不确定你错过了什么。但是在创建数据库时,必须遵循业务逻辑和规范化规则。

以下是我的一些建议:1. ProjectEntry在这里,您应该单独创建一个状态表,并将其引用键作为StatusID提供给ProjectEntry表。
  1. 的要求您应该分别创建需求优先级和类型表。为提供者的问题和答案添加单独的表。我希望你需要为单个需求存储多个问题答案

  2. 供应商新增供应商分类表

  3. 单独创建投标部表,并提供其对投标表的引用。

  4. 你应该为上传的文件做一个表格。它应该包含ID, ProjectId, Documentname, DocumentType, DocumentShortDescription, uplodatedDateTime字段。