我有一個很小的數據庫,只有一個小表。實體框架生成DbSet而不是單個類
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而不是單class
當我嘗試填充類和SaveChanges時,如何訪問DbSet?
using (savitassaEntities3 entities3 = new savitassaEntities3())
{
entities3.Connections conn = new Connections();
}
它也與SignalR類相沖突因爲這是aSignalR Hub。
這是基本的EF行爲。請參閱http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc或http://www.asp.net/mvc/tutorials/getting-started-with-ef-5 -using-mvc-4。至於命名空間衝突 - 爲'Connections'類使用全名稱空間,即'new entities3.Connections()'。 – Jasen
這就是EF的工作原理。你的類是Connection,你的DbSet(用於EF橋接你的類和數據庫的EF包裝器)僅僅是實體(上下文)的一個屬性,我建議做出單數的BTW,然後你的命名空間問題消失,類名更合乎邏輯)。 –
p.s.如果你對「這個dbset是什麼」感到困惑,而不是「爲什麼命名空間碰撞」至少要在Pluralsight上觀看EF5課程的模塊5(與你的ef模型交互)。 IIRC你有訂閱。 :) –