2015-12-23 1 views
0

Я не могу понять, в чем проблема. Я использую Entity Framework 6 для доступа к базе данных Oracle 12c. Когда я пытаюсь добавить новую строку в таблицу, я получаю ошибку ORA-01400 в своем названии. Однако, когда я смотрю на значения, которые я пытаюсь добавить в отладчик, они не равны нулю.ORA-01400: не может вставить NULL в («TBLS». «FTP_GET_TESTING». «FTP_LOOKUP_ID»), но насколько я могу сказать, это не пусто

protected void InsertButton_Click(object sender, EventArgs e) 
{   
    AddNewPartner(GetFields());    
} 

public void AddNewPartner(FTP_GET_TESTING ftpPartner) 
{    
    using (Entities myEntities = new Entities()) 
    { 
      myEntities.FTP_GET_TESTING.Add(ftpPartner); 
      myEntities.SaveChanges();    
    } 
} 

Update

Вот модель (это данные первых):

public partial class FTP_GET_TESTING 
{ 
public string FTP_LOOKUP_ID { get; set; } 
public string FTP_HOST { get; set; } 
public string USER_NAME { get; set; } 
public string PASSWORD { get; set; } 
public string ADAPTER { get; set; } 
public string FTP_MODE { get; set; } 
public string PICKUP_FOLDER { get; set; } 
public string DESTINATION_FOLDER { get; set; } 
public string DELIVERY_FILENAME { get; set; } 
public string DESTINATION_BP { get; set; } 
public string ARCHIVE_FOLDER { get; set; } 
public string REMOTE_ARCHIVE_FILE_EXTENSION { get; set; } 
public string REMOTE_ARCHIVE_DIRECTORY { get; set; } 
public string REMOTE_FILE_DELETE { get; set; } 
public string FTP_DOWN { get; set; } 
public string FILTER { get; set; } 
public string LISTSIZE_FLAG { get; set; } 
public decimal LIST_MAX { get; set; } 
public string CHECK_FILE_SIZE { get; set; } 
public string PGP_DECRYPT { get; set; } 
public string PGP_PASSPHRASE { get; set; } 
public string CONNECTION_TYPE { get; set; } 
public string REPRESENTATION_TYPE { get; set; } 
public string FTPS_CACERTIFICATE_ID { get; set; } 
public string FTPS_CIPHER_STRENGTH { get; set; } 
public string PORT { get; set; } 
public string FTPS_SSL { get; set; } 
public string FTPS_SYSTEM_CERT_ID { get; set; } 
public string SFTP_COMPRESSION { get; set; } 
public string SFTP_KNOWNHOST_KEY_ID { get; set; } 
public string SFTP_PREF_AUTH_METHOD { get; set; } 
public string SFTP_PREFERRED_CIPHER { get; set; } 
public string SFTP_PREFERRED_MAC { get; set; } 
public string SFTP_USER_ID_KEY_ID { get; set; } 
public string FMC_RELATIONSHIP_NAME { get; set; } 
public string USER_FIELD1 { get; set; } 
public string USER_FIELD2 { get; set; } 
public string USER_FIELD3 { get; set; } 
public string NOTES { get; set; } 
public Nullable<System.DateTime> LAST_UPDATE { get; set; } 
public string LAST_USER_UPDATE { get; set; } 
public string PARTNER_NAME { get; set; } 
public string MAILBOX_ID { get; set; } 
public string REMEDY_QUEUE { get; set; } 
public string SCHEDULE { get; set; } 
public Nullable<decimal> ALERT_FREQUENCY { get; set; } 
public string PRIORITY { get; set; } 
public string CONTACT_NAME { get; set; } 
public string CONTACT_EMAIL { get; set; } 
public string CONTACT_PHONE { get; set; } 
public string FTP_SEND_LOOKUP_ID { get; set; } 
} 

Я проверить данные, добавленные с помощью немедленного окна в отладчике.

myEntities.FTP_GET_TESTING.Add(ftpGet); 
    {GP_GENERIC_FTP_GET_TESTING} 
    ADAPTER: "FTP_Client_Adapter_Group" 
    ALERT_FREQUENCY: 120 
    ARCHIVE_FOLDER: "" 
    CHECK_FILE_SIZE: "NO" 
    CONNECTION_TYPE: "PASSIVE" 
    CONTACT_EMAIL: "Atest" 
    CONTACT_NAME: "Atest" 
    CONTACT_PHONE: "Atest" 
    DELIVERY_FILENAME: "" 
    DESTINATION_BP: "" 
    DESTINATION_FOLDER: "" 
    FILTER: "" 
    FMC_RELATIONSHIP_NAME: "" 
    FTPS_CACERTIFICATE_ID: "" 
    FTPS_CIPHER_STRENGTH: "" 
    FTPS_SSL: "" 
    FTPS_SYSTEM_CERT_ID: "" 
    FTP_DOWN: "N" 
    FTP_HOST: "Change" 
    FTP_LOOKUP_ID: "AnotherTest4" 
    FTP_MODE: "FTP" 
    FTP_SEND_LOOKUP_ID: "" 
    LAST_UPDATE: {12/28/2015 8:49:49 AM} 
    LAST_USER_UPDATE: "driver" 
    LISTSIZE_FLAG: "TRUE" 
    LIST_MAX: 520 
    MAILBOX_ID: "" 
    NOTES: "Atest" 
    PARTNER_NAME: "Atest" 
    PASSWORD: "Atest" 
    PGP_DECRYPT: "N" 
    PGP_PASSPHRASE: "" 
    PICKUP_FOLDER: "" 
    PORT: "21" 
    PRIORITY: "8x5" 
    REMEDY_QUEUE: "Atest" 
    REMOTE_ARCHIVE_DIRECTORY: "" 
    REMOTE_ARCHIVE_FILE_EXTENSION: "" 
    REMOTE_FILE_DELETE: "Y" 
    REPRESENTATION_TYPE: "BINARY" 
    SCHEDULE: "60MIN" 
    SFTP_COMPRESSION: "" 
    SFTP_KNOWNHOST_KEY_ID: "" 
    SFTP_PREFERRED_CIPHER: "blowfish-cbc" 
    SFTP_PREFERRED_MAC: "" 
    SFTP_PREF_AUTH_METHOD: "" 
    SFTP_USER_ID_KEY_ID: "" 
    USER_FIELD1: "" 
    USER_FIELD2: "" 
    USER_FIELD3: "" 
    USER_NAME: "Atest" 

и я думаю, что это информация о конфигурации, которую вы хотели видеть.

<configSections> 
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> 

Что еще мне нужно добавить здесь, чтобы помочь выяснить проблему?

+0

Включите ведение журнала и посмотрите на точный запрос/параметры - https://msdn.microsoft.com/en-us/data/dn469464.aspx – OldProgrammer

+0

Извините, но я не могу представить, как мы должны были выяснить что не так из 6 строк кода. –

+0

@Gergely Bacso Отсюда вопрос «Что еще мне нужно добавить сюда ...». Я не был уверен, что конкретно понадобится, поэтому я представил базовый план. –

ответ

0

Чтобы исправить это, я сделал две вещи. Сначала я удалил модель FTP_GET_TESTING, а затем сравнил первичный ключ (FTP_LOOKUP_ID) в таблице тестирования с ПК в таблице тестирования, и были некоторые различия. В представлении дизайна таблицы FTP_GET_TESTING мой PK Constraint был назван SYS_C0027857 Я изменил его на FTP_GET_TESTING_PK. Я также изменил имя индекса в соответствии с именем ограничения FTP_GET_TESTING_PK. Затем я добавил таблицу обратно в свою модель, и она отлично работала.

Я не уверен, что изменение имени PK в ограничениях и индексах устранило проблему, или если просто удаление и повторное добавление сделали трюк.

Если кто-то хочет добавить какой-либо вклад в это для будущих зрителей, и чтобы я мог понять, что произошло немного больше, я был бы признателен.

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