实体框架生成DbSet而不是单个类

时间:2014-02-11 20:25:57

标签: entity-framework

我有一个带有一个小桌子的小型数据库。

CREATE TABLE [dbo].[Connections](
        [connectionID] [bigint] IDENTITY(1,1) NOT NULL,
        [ipAddress] [varchar](50) NULL,
        [ConnectionGUID] [varchar](100) NULL,
        [created] [datetime] NULL,
        [registrationID] [varchar](100) NULL,
     CONSTRAINT [PK_Connections] PRIMARY KEY CLUSTERED 
    (
        [connectionID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

当我从数据库生成模型时,它会生成:

public virtual DbSet<Connections> Connections { get; set; }

其中:

public partial class Connections
    {
        public long connectionID { get; set; }
        public string ipAddress { get; set; }
        public string ConnectionGUID { get; set; }
        public Nullable<System.DateTime> created { get; set; }
        public string registrationID { get; set; }
    }

我不知道它为什么生成DbSet而不是单个类

当我尝试填充类和SaveChanges时,如何访问DbSet?

using (savitassaEntities3 entities3 = new savitassaEntities3())
            {
                entities3.Connections conn = new Connections();

            }

它也与SignalR类Connections冲突,因为这是一个信号中心。

1 个答案:

答案 0 :(得分:1)

从数据库的角度来看,将DbSet视为表,将类(Connections)视为该表中的一行。 DbSet包含在DbContext类中,您可以将其视为数据库。

对于与Connections的名称冲突,请确保完全命名空间限定它。 entities3.Connections conn = new MyProject.MyNamespace.Connections();

因此,为了选择记录,你可以按照

的方式做点什么
var cn = new savitassaEntities3();
var query = cn.Connections.Where(c => c.foo == bar);

要插入连接,请使用

cn.Connections.Add(value);
cn.SaveChanges();

如果我错过了您正在尝试做的事情以及您拥有的内容,请随意添加更多代码,我可以看看。