Q1.如何为数据库中的单列表手动创建一个极其简单的实体框架模型并对其进行查询?
该表如下所示:
CREATE TABLE dbo.MyTable (
Value int NOT NULL CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED
);
我有一个 POCO 可以映射到它:
public class MyTable {
public int Value { get; set; }
}
Q2.那么如何查询MyTable
与Expression<Func<MyTable, bool>>
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();
}
您需要确保参考EntityFramework
NuGet 包和System.ComponentModel.Annotations.dll
。以下是我使用的命名空间:
System.ComponentModel.DataAnnotations.Schema
System.Data.Entity
System.Data.Entity.ModelConfiguration
System.Data.Entity.ModelConfiguration.Configuration
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)