我在使用LinqTemplate创建Web应用程序时遇到问题,这是步骤明智的解释....
我创建了一个classLiberary项目,其中我使用了亚力学的LinqTemplate进行DAL的代码生成,并为UserTest创建了一个部分类
public partial class TestUser:Classes
{
public int Insert(TestUser user)
{
NFSLicensingSystemDB db = new NFSLicensingSystemDB();
return db.Insert.Into<TestUser>
(
x => x.UserId
)
.Values(
user.UserId
).Execute();
}
}
我在同一个解决方案中创建了一个Web项目,并使用一个按钮创建了一个UserTest.aspx页面 该页面的UserTest.aspx代码: -
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
4.UserTest.aspx.cs 这里Database是OnButton Click事件的连接字符串名称代码
protected void Button1_Click(object sender, EventArgs e)
{
Datadase.TestUser test =new Datadase.TestUser();
test.UserId = Guid.NewGuid();
test.Insert(test);
}
现在,当我构建项目时,它成功构建,当我运行它显示的项目时 带有按钮的UserTest.aspx页面但是当我点击按钮时它必须将新的guid值插入到表中但是 它会引发异常
[InvalidCastException: Object must implement IConvertible.]
System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +2560525
System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType) +414
[InvalidCastException: Failed to convert parameter value from a Guid to a String.]
TestPages.UserEdit.btnCreateNewAccount_Click(Object sender, EventArgs e) in D:\TestPages\UserEdit.aspx.cs:61
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
答案 0 :(得分:0)
我会检查你的类库,因为看起来它失败了,因为类“Datadase.TestUser”中的属性“UserId”是一个字符串,而不是Guid。