给实体的某一属性设置默认值
model:
Weight为Product的一个可为空属性, 右击Weight,查看属性,Default Value中设置默认值。
代码
using (EFDemoEntities context = new EFDemoEntities())
{
{
ProductName = "大鸭梨",
UnitPrice = 3,
Color = "White"
};
context.Products.AddObject(product);
context.SaveChanges();
}
{
Product product
= new Product{
ProductName = "大鸭梨",
UnitPrice = 3,
Color = "White"
};
context.Products.AddObject(product);
context.SaveChanges();
}
结果如下:
查询时给为Null 的属性设置默认值
代码
//Linq
using (var context = new EFDemoEntities())
{
Console.WriteLine("Products:");
var products = from p in context.Products
select new { ProductName = p.ProductName, Weight = p.Weight ?? 0 };
foreach (var product in products)
{
Console.WriteLine("{0}, 重量: {1}", product.ProductName, product.Weight);
}
}
using (var context = new EFDemoEntities())
{
Console.WriteLine("Products:");
string esql = @"select
p.ProductName,
case when p.Weight is null then 0
else p.Weight
end as ProductWeight
from Products as p";
var products = context.CreateQuery<DbDataRecord>(esql);
foreach (var product in products)
{
Console.WriteLine("{0}, 重量: {1}", product.GetString(0), product.GetDouble(1));
}
}
using (var context = new EFDemoEntities())
{
Console.WriteLine("Products:");
var products = from p in context.Products
select new { ProductName = p.ProductName, Weight = p.Weight ?? 0 };
foreach (var product in products)
{
Console.WriteLine("{0}, 重量: {1}", product.ProductName, product.Weight);
}
}
//Esql
using (var context = new EFDemoEntities())
{
Console.WriteLine("Products:");
string esql = @"select
p.ProductName,
case when p.Weight is null then 0
else p.Weight
end as ProductWeight
from Products as p";
var products = context.CreateQuery<DbDataRecord>(esql);
foreach (var product in products)
{
Console.WriteLine("{0}, 重量: {1}", product.GetString(0), product.GetDouble(1));
}
}
结果如下(默认值为0):