解决 Linq To SQL 中 DataContext 没有 CreateTable 方法的郁闷
2009-02-08 00:11
627 查看
用过Linq To SQL的朋友都清楚,DataContext 有 CreateDatabase() 这个方法,但是却没有CreateTable(),有些情况下,还是需要CreateTable()的,比如说在虚拟主机上,一般都是没有建立数据库的权限。代码比较简单,看一下就明白了。
namespace ALinq.Mapping
{
class CreateTableDemo
{
[Table(Name = "User")]
class User
{
[Column]
public int ID;
[Column]
public string Name;
}
static void Main()
{
var constr = @"Data Source=NOTEBOOK\SQLEXPRESS;Initial Catalog=DemoDataContext;Integrated Security=True";
var context = new DataContext(constr) { Log = Console.Out };
var metaTable = context.Mapping.GetTable(typeof(User));
Debug.Assert(metaTable != null);
var typeName = "System.Data.Linq.SqlClient.SqlBuilder";
var type = typeof(DataContext).Assembly.GetType(typeName);
var bf = BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.InvokeMethod;
var sql = type.InvokeMember("GetCreateTableCommand", bf, null, null, new[] { metaTable });
Console.WriteLine(sql);
//Excute SQL Command
}
}
}
namespace ALinq.Mapping
{
class CreateTableDemo
{
[Table(Name = "User")]
class User
{
[Column]
public int ID;
[Column]
public string Name;
}
static void Main()
{
var constr = @"Data Source=NOTEBOOK\SQLEXPRESS;Initial Catalog=DemoDataContext;Integrated Security=True";
var context = new DataContext(constr) { Log = Console.Out };
var metaTable = context.Mapping.GetTable(typeof(User));
Debug.Assert(metaTable != null);
var typeName = "System.Data.Linq.SqlClient.SqlBuilder";
var type = typeof(DataContext).Assembly.GetType(typeName);
var bf = BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.InvokeMethod;
var sql = type.InvokeMember("GetCreateTableCommand", bf, null, null, new[] { metaTable });
Console.WriteLine(sql);
//Excute SQL Command
}
}
}
相关文章推荐
- Linq to SQL Delete时遇到问题的解决方法
- Linq to Sql 或linq to entities 与SQL 查询结果不一致,返回重复结果问题解决方法
- linq to sql 学习(10)linq动态字段的解决方法
- linq to sql统一更新方法,直接返回更新的对象(解决更新后再刷新数据错误显示问题)
- Linq to SQL Delete时遇到问题的解决方法
- 扩展方法解决LinqToSql Contains超过2100行报错问题
- Linq to sql 实现多条件的动态查询(方法一)
- Linq to sql 实现多条件的动态查询(方法一)
- 转:使用linq to sql 随机取一行数据的方法
- Linq to Sql 动态条件另类实现方法
- 也记一次性能优化:LINQ to SQL中Contains方法的优化
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB cannot be cast to oracle.sql.BLOB 不改程序解决方法
- hibernate和LinQ To SQL还是没有弱类型的DataTable好用
- Linq-to-Sql中更新数据库失败的解决办法
- 使用Linq to sql 和Linq to entity 时候写的拓展方法
- MyEclipse中点击Deploy MyEclipse J2EE Project to Server没有反应解决方法
- Linq中int转String(解决LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式.)
- [转自JeffreyZhao]在LINQ to SQL中使用Translate方法以及修改查询用SQL
- LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法