Добрый день.

При запросе к FileType через Select или EntitySchemaQuery, получаю ошибку

"Invalid column name "Code" "

private Guid _GetAttachmentTypeUid()
        {
            // Вариант 1
            Guid id = Guid.Empty;
            var esqResult = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "FileType");
            var idCol = esqResult.AddColumn("Id");
            esqResult.Filters.Add(esqResult.CreateFilterWithParameters(FilterComparisonType.Equal, "Code", "File"));
            if (esqResult.GetEntityCollection(_userConnection).FirstOrDefault() is FileType entity)
            {
                id = entity.GetTypedColumnValue<Guid>(idCol.Name);
            }
 
            // Вариант 2
            var select = new Select(_userConnection)
                .From("FileType")
                .Column("Id")
                .Where("Code").IsEqual("File")
                as Select;
            var dbReader = GetDbReader(select);
            if (dbReader.Read())
            {
                id = dbReader.GetColumnValue<Guid>("Id");
            }
            dbReader.Close();
 
            return id;
        }

 

Нравится

2 комментария
Лучший ответ
// Вариант 2
            var select = new Select(_userConnection)
                .Column("Id")
                .From("FileType")                
                .Where("Code").IsEqual(Column.Parameter("File"))
                as Select;
// Вариант 1
var typeESQ = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "FileType");  
			var idColumn = typeESQ.AddColumn("Id");      
			var typeIdFilter = typeESQ.CreateFilterWithParameters(
				FilterComparisonType.Equal, "Code", "File");
			typeESQ.Filters.Add(typeIdFilter);  
			var entityCollection = typeESQ.GetEntityCollection(UserConnection);
			if (entityCollection != null &amp;&amp; entityCollection.Count &gt; 0) {
				var id = entityCollection[0].GetTypedColumnValue&lt;Guid&gt;(idColumn.Name);
			}
// Вариант 2
            var select = new Select(_userConnection)
                .Column("Id")
                .From("FileType")                
                .Where("Code").IsEqual(Column.Parameter("File"))
                as Select;
// Вариант 1
var typeESQ = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "FileType");  
			var idColumn = typeESQ.AddColumn("Id");      
			var typeIdFilter = typeESQ.CreateFilterWithParameters(
				FilterComparisonType.Equal, "Code", "File");
			typeESQ.Filters.Add(typeIdFilter);  
			var entityCollection = typeESQ.GetEntityCollection(UserConnection);
			if (entityCollection != null &amp;&amp; entityCollection.Count &gt; 0) {
				var id = entityCollection[0].GetTypedColumnValue&lt;Guid&gt;(idColumn.Name);
			}

Так же рекомендую через SQL профайлер смотреть какие запросу идут в БД для анадиза и вылавливания ошибок!

Показать все комментарии