我使用EF4和我发现的一段代码MaxLength从这样的实体获取值:
public static int? GetMaxLength(string entityTypeName, string columnName)
{
int? result = null;
using (fooEntities context = new fooEntities())
{
Type entType = Type.GetType(entityTypeName);
var q = from meta in context.MetadataWorkspace.GetItems(DataSpace.CSpace)
.Where(m => m.BuiltInTypeKind == BuiltInTypeKind.EntityType)
from p in (meta as EntityType).Properties
.Where(p => p.Name == columnName
&& p.TypeUsage.EdmType.Name == "String")
select p;
var queryResult = q.Where(p =>
{
bool match = p.DeclaringType.Name == entityTypeName;
if (!match && entType != null)
{
match = entType.Name == p.DeclaringType.Name;
} …Run Code Online (Sandbox Code Playgroud) 根据这个问题,EF v1中没有内置的方法可以计算出场的长度.在 .NET 4附带的实体框架中是否有内置方法可以这样做,如果是这样 - 如何?
假设我有一个看起来像这样的表:
create table #Employee (
EmployeeId int identity(1,1) not null,
FirstName varchar(100) not null,
LastName varchar(100) not null,
Suffix varchar(10) not null,
Prefix varchar(10) not null,
Address varchar(500) null)
Run Code Online (Sandbox Code Playgroud)
我用WCF(Soap)服务填充此表.我的数据合同如下:
[DataContract]
public class Employee
{
[DataMember]
public virtual string FirstName { get; set; }
[DataMember]
public virtual string LastName { get; set; }
[DataMember]
public virtual string Suffix { get; set; }
[DataMember]
public virtual string Prefix { get; set; }
[DataMember]
public virtual string Address { get; set; } …Run Code Online (Sandbox Code Playgroud)