我有一个Windows应用程序使用SQL Compact 4.0数据库,使用EF 4.1和代码优先的方法.我无法将对象保存到数据库,因为我遇到异常,在尝试保存类型报价时出现内部异常"转换为datetime时发生溢出":
public class Quotation
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime DateCreated { get; set; }
public ContactPerson ContactPersonAssigned { get; set; }
public string OurReference { get; set; }
public string QuotationDataString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我读到这个错误可能是由于我的应用程序设置和关于日期转换的sql compact数据库设置不匹配引起的.我不确定,因为我的sdf数据库文件有一个正确命名为"DateCreated"的字段,不可为空且类型为"datetime".
我是SQL compact的新手.你能帮我调试一下这个问题吗?
asp.net-mvc sql-server-ce ef-code-first entity-framework-4.1
我正在努力解决一个非常乏味的问题.我有一个名为Nation的类和一个名为NationAlly的类
public class Nation
{
public int ID {get; set;}
public int name {get;set;}
public List<NationAlly> NationAllies {get;set;}
}
public class NationAlly
{
public int ID {get; set;}
public int level {get;set;}
public Nation toNation {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用EF 4和CodeFirst与一个名为NationsDB的DbContext来管理我在SQL Server 2008上的数据库.如果我创建一个Nation类型的新对象,我尝试调用countriesDB.SaveChanges,我得到以下异常:
"违反了多重约束.关系'CodeFirstNamespace.NationAlly_toNation'的角色'NationAlly_toNation_Target'具有多重性1或0..1."
我试图用NationAllies字段保存Nation字段为null并且不抛出此异常,数据库中的country表获取所有正确的值.
在我的数据库中,表Nation有2个字段:ID(主键),名称表NationAlly有3个字段:ID(主键),level,NationID这两个表链接的关系是NationAlly.NationID是外键和Nation .ID是主键.
不奇怪吗?在我眼中,NationAlly表应该有一个名为NationID1的字段,另一个叫做NationID2,以创建一个国家和其他国家名单之间的"关系".
我做错了什么?
我首先在SQL ce 4.0中使用EF 4.1代码
我有两节课
public class Customer
{
public int ID { get; set; }
public string CompanyName { get; set; }
public List<ContactPerson> ContactPersons { get; set; }
}
public class ContactPerson
{
public int ID { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和DbContext
public class MyDB : DbContext
{
public DbSet<ContactPerson> ContactPersons { get; set; }
public DbSet<Customer> Customers { get; set; }
public MyDB()
{
this.Configuration.LazyLoadingEnabled = true;
}
protected override …Run Code Online (Sandbox Code Playgroud) 如何以这样一种方式更改项目库的名称:
1)装配信息名称
2)物理文件夹名称
3)参考名称
我尝试了正常的重构,但它不会影响所有条目.即旧库名="实用程序",新库名="DataLayer"."Datalayer"应该在任何地方替换"Utilities".
我创建了一个Windows窗体应用程序:
我正在使用EntityFramework 4.1与Code First Approach和SQL Compact 4.0数据库.
我在用于连接数据库的类库项目的app.config文件中创建了一个连接字符串.问题是连接字符串显然对数据库创建没有影响.我的意思是一切都与程序一起正常工作,但即使我指定了数据库的位置,这也没有任何效果!
我在正确的app.config中写作吗?我是否需要以特定方式初始化我的DbContext类?(今天我没有在构造函数中传递任何连接字符串)
DbContext类:
public class MyDB : DbContext
{
public DbSet<ContactPerson> ContactPersons { get; set; }
public DbSet<Customer> Customers { get; set; }
public DbSet<Project> Projects { get; set; }
public DbSet<Quotation> Quotations { get; set; }
public MyDB()
: base("MyDatabase")
{
}
}
Run Code Online (Sandbox Code Playgroud)
App.config连接字符串:
<add name="MyDatabase" connectionString="Data Source=MyDB.sdf"
providerName="System.Data.SqlServerCE.4.0">
Run Code Online (Sandbox Code Playgroud) connection-string sql-server-ce ef-code-first entity-framework-4.1
尝试从包管理器安装最新版本的EntityFramework(4.1.10715.0)时出现了一个奇怪的错误:
未声明'schemaVersion'属性.
我怎么解决这个问题?
我在 datagridview 上遇到了一个奇怪的问题。我需要更改所选单元格 (A) 的样式以响应另一个单元格 (B) = x 的值。(A) 是文本框,(B) 是组合框。我捕获了 CellEndEdit 事件,当用户更改 (B) 的值时,一切正常:(A) 的样式立即更改。
现在,当我尝试以编程方式更新 datagridview 时,这不起作用。奇怪的是,这两种方式共享同一个方法,UpdateTimeChannelCell。如果我以编程方式调用此方法,datagridview 不会更新其单元格的样式。我尝试更新、刷新、使 datagridview 无效,但没有成功
private void UpdateTimeChannelCell(DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 1 || e.ColumnIndex == 3 || e.ColumnIndex == 5 || e.ColumnIndex == 7 || e.ColumnIndex == 9 || e.ColumnIndex == 11 || e.ColumnIndex == 13)
{
if ((int)this.dataGridView_TidKanaler.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == 0)
{
this.dataGridView_TidKanaler.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value = new Time();
this.dataGridView_TidKanaler.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Style = disableStyle;
}
else
{
this.dataGridView_TidKanaler.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Style = enableStyle; …Run Code Online (Sandbox Code Playgroud)