Eri*_*ikE 3 c# entity-framework linqpad
一季度。如何为我的数据库中的单列表手动创建一个死简单的实体框架模型,并对其进行查询?
该表如下所示:
CREATE TABLE dbo.MyTable (
Value int NOT NULL CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED
);
Run Code Online (Sandbox Code Playgroud)
我有一个 POCO 可以映射到它:
public class MyTable {
public int Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Q2。然后,如何MyTable使用Expression<Func<MyTable, bool>>lambda 进行查询,该lambda 将决定返回哪些行并将投影到 SQL 中?
我对 EF 比较陌生,但对 C# 或软件开发并不陌生。我问这个问题是因为现在我只想快速证明 LINQPad 中某些东西的概念,而不使用 EF 实体数据模型向导,因此将来很容易编写出这样的代码。
您所需要的只是下面的代码,准备粘贴到 LinqPad
class MyTable
{
public int Value { get; set; }
}
class MyTableConfiguration : EntityTypeConfiguration<MyTable>
{
public MyTableConfiguration()
{
ToTable("dbo.MyTable");
HasKey(x => x.Value);
Property(x => x.Value).HasColumnName("Value").IsRequired();
}
}
class MyDbContext : DbContext
{
public IDbSet<MyTable> MyTableSet { get; set; }
public MyDbContext(string connectionString) : base(connectionString)
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new MyTableConfiguration());
}
}
void Main()
{
MyDbContext context = new MyDbContext("Data Source=(local);Initial Catalog=SO33426289;Integrated Security=True;");
Expression<Func<MyTable, bool>> expr = x => x.Value == 42;
context.MyTableSet.Where(expr).Dump();
}
Run Code Online (Sandbox Code Playgroud)
您需要确保引用EntityFrameworkNuGet 包和System.ComponentModel.Annotations.dll. 以下是我使用的命名空间:
System.ComponentModel.DataAnnotations.Schema
System.Data.Entity
System.Data.Entity.ModelConfiguration
System.Data.Entity.ModelConfiguration.Configuration
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4849 次 |
| 最近记录: |