我也处于同样的境地,无法在EDM文件中添加add entities。我已经从Rocketsoftware下载了最新的.NET工具包1.3。是我漏掉了什么,还是设计者仍在等待。
请让我知道,因为这将使连接到UniData变得轻而易举。
谢谢。
发布于 2014-05-12 02:34:11
要在Visual Studio 2013中创建实体数据模型,需要执行以下步骤。
打开Visual Studio 2013

打开视图->服务器资源管理器

创建U2连接


创建C# Winform项目

创建ADO.NET实体数据模型
右键单击Project并选择Add New Item。

在右侧选择“数据”,在左侧选择“ADO.NET实体数据模型”。在Name字段中,输入Customer。选择“添加”按钮

选择“EF Designer from database”,然后选择“Next”。

选择连接字符串,并为敏感数据选择“Yes”

选择Entity Framework 5.0。注意: v2.1.1将包含Entity Framework 6.0功能。

选择所有表

按Finish,您将看到实体数据模型

发布于 2014-05-15 00:22:26
你也可以使用LINQ to Entity Code First Model,Visual Studio2013和.NET v2.1.0的U2工具包。
有关.NET v2.1.0的U2工具包的更多信息,请参阅下面的内容。
创建单值类
public class CUSTOMER
{
public int CUSTID { get; set; }
public string FNAME { get; set; }
public string LNAME { get; set; }
public virtual ICollection<CUSTOMER_ORDER> Orders { get; set; }
}创建多值类
public class CUSTOMER_ORDER //Syntax : FILENAME_ASSOCIATION OR FILENAME_MULTIVALUE
{
[Column (Order =0)]
public int CUSTID { get; set; }
[Column(Order = 1)]
public string PRODID { get; set; }
[Column(Order = 2)]
public string SER_NUM { get; set; }
[Column(Order = 3)]
public int Z_MV_KEY { get; set; }
[Column(Order = 4)]
//[ForeignKey("CUSTID")]
public virtual CUSTOMER Customer { get; set; }
}创建单值类和多值类之间的关系
public virtual ICollection<CUSTOMER_ORDER> Orders { get; set; }公共虚拟客户客户{ get;set;}
创建上下文类
public class CustomerContext : DbContext
{
public CustomerContext()
{
}
public DbSet<CUSTOMER> Customers { get; set; }
public DbSet<CUSTOMER_ORDER> Orders { get; set; } //Syntax : FILENAME_ASSOCIATION OR FILENAME_MULTIVALUE
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>();
modelBuilder.Conventions.Remove<OneToOneConstraintIntroductionConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<AssociationInverseDiscoveryConvention>();
modelBuilder.Conventions.Remove<DatabaseGeneratedAttributeConvention>();
modelBuilder.Conventions.Remove<DeclaredPropertyOrderingConvention>();
modelBuilder.Conventions.Remove<RequiredNavigationPropertyAttributeConvention>();
modelBuilder.Entity<CUSTOMER>().Property(t => t.CUSTID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Database.SetInitializer<CustomerContext>(null);
modelBuilder.Entity<CUSTOMER>()
.HasKey(pk => new { pk.CUSTID })
.ToTable("CUSTOMER");
modelBuilder.Entity<CUSTOMER_ORDER>()
.HasKey(pk => new { pk.CUSTID, pk.Z_MV_KEY })
.ToTable("CUSTOMER_ORDER");//Syntax : FILENAME_ASSOCIATION OR FILENAME_MULTIVALUE
modelBuilder.Entity<CUSTOMER_ORDER>()
.HasRequired(c => c.Customer)
.WithMany(p => p.Orders)
.HasForeignKey(c => c.CUSTID)
.WillCascadeOnDelete(false);
}
}在App.Config文件中添加条目
<add name="CustomerContext" connectionString="Database=HS.SALES;User ID=user;Password=mypass;Server=myserver;Pooling=false;ServerType=universe;PersistSecurityInfo=true;AccessMode=Native;RpcServiceType=uvcs" providerName="U2.Data.Client"/>
运行应用程序
static void Main(string[] args)
{
try
{
Console.WriteLine("Start...");
Database.SetInitializer<CustomerContext>(null);
CustomerContext ctx = new CustomerContext();
var q = ctx.Customers.ToList();
foreach (var item in q)
{
string lCUSTID = Convert.ToString(item.CUSTID);
string lFNAME = Convert.ToString(item.FNAME); ;
string lLNAME = Convert.ToString(item.LNAME); ;
Console.Write("CUSTID:" + lCUSTID);
Console.Write(" FNAME:" + lFNAME);
Console.Write(" LNAME:" + lLNAME);
foreach (var item2 in item.Orders)
{
string lCUSTID2 = Convert.ToString(item2.CUSTID);
string lPRODID = Convert.ToString(item2.PRODID); ;
string lSER_NUM = Convert.ToString(item2.SER_NUM);
string lZ_MV_KEY = Convert.ToString(item2.Z_MV_KEY);
Console.Write("\t"+"CUSTID:" + lCUSTID2);
Console.Write("\t" + " PRODID:" + lPRODID);
Console.Write("\t" + " SER_NUM:" + lSER_NUM);
Console.Write("\t" + " Z_MV_KEY:" + lZ_MV_KEY);
}
Console.WriteLine();
}
Console.WriteLine("End...");
Console.Read();
}
catch (Exception e)
{
string lErr = e.Message;
if (e.InnerException != null)
{
lErr += e.InnerException.Message;
Console.WriteLine(lErr);
}
}
}V2.1.0中的新特性
在一个屋檐下完成一个UO.NET)
https://stackoverflow.com/questions/20980191
复制相似问题