У меня проблема при создании веб-приложения с использованием LinqTemplate. Это объяснение, шаг за шагом ...
- Я создал базу данных с именем таблицы UserTest с одним именем столбца UserId с типом уникального идентификатора
Я создал проект classLiberary, в котором я использовал LinqTemplate of subsonic для генерации кода 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();
}
}
Я создал веб-проект в том же решении и создал страницу 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
Здесь база данных - это строка имени подключения, код события 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