2009-09-24 4 views
0

Я использую Дозвуковые с SimpleRepository:SubSonic3 - Колонка «CategoryId» не может быть пустым

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using SubSonic.DataProviders; 
using SubSonic.Repository; 

namespace SubSonicTest 
{ 
    class Program 
    { 
     public class Product 
     { 
      public int ProductID { get; set; } 
      public int CategoryID { get; set; } 
      public string ProductName { get; set; } 
      public decimal UnitPrice { get; set; } 
      public bool Discontinued { get; set; } 


     } 
     static void Main(string[] args) 
     { 

      var repo = new SimpleRepository("SubSonic", SimpleRepositoryOptions.RunMigrations); 
      var newProduct = new Product(); 
      newProduct.CategoryID = 5; 
      newProduct.ProductName = "Pretzel"; 
      newProduct.UnitPrice = 100; 
      newProduct.Discontinued = false; 
      repo.Add<Product>(newProduct); 
     } 
    } 
} 

Однако, когда я запускаю это, я получаю: Column «CategoryId» не может быть пустым Это с MySQL и Windows и VS2008. Есть идеи?

Thanks

ответ

1

Попробуйте изменить определение свойства вашего класса;

public int? CategoryID { get; set; } 

Вы не можете установить тип int в null.

+0

Хотя, как ни странно, его код, как представляется, указывает значение CategoryID. –

+0

Я думал, что, возможно, разработчик пытался установить свойство null? Я знаю, что звучит сумасшедшим, но я подумал, что это заставило его работать, а затем хура! – CmdrTallen

Смежные вопросы