小编Lad*_*nka的帖子

使用kso​​ap2的WCF Web服务的Android - 错误SoapFault - faultcode:'a:ActionNotSupported'

我做了一个简单的项目,使用kso​​ap2调用wcf web服务.但是当它调用envelope.getResponse(); 它给错误说-----

"SoapFault - faultcode:'a:ActionNotSupported'faultstring:'由于EndpointDispatcher上的ContractFilter不匹配,无法在接收方处理带有Action'GetString'的消息.这可能是由于合同不匹配(发送方与接收方之间的操作不匹配)或发送方与接收方之间的绑定/安全性不匹配.检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息,传输,无).faultactor:'null'detail:null"

我在localhost中运行web服务.

请帮帮我一些

我指定的这个值是否正确,

private static final String SOAP_ACTION = “GetString”;
private static final String OPERATION_NAME = “GetString”;
private static final String WSDL_TARGET_NAMESPACE = “http://tempuri.org/”;
private static final String SOAP_ADDRESS = “http://10.0.2.2:14089/Service1.svc?wsdl”;
Run Code Online (Sandbox Code Playgroud)

wcf android ksoap2

5
推荐指数
1
解决办法
1万
查看次数

如何让Entity Framework和WCF处理事务?好的......秘诀是什么?

我一直在尝试几种不同的方法,以便获得一组简单的事务来处理简单的WCF客户端/服务器情况.我的WCF服务器具有用于数据库访问的Entity Framework类的类级别声明,以及用于修改数据的几种方法和用于SaveChanges的方法.我正在使用Oracle数据访问(ODP.NET).

例如,我想从客户端调用修改,然后单独调用以保存WCF服务中的更改.它不起作用.基本上,一切都运行良好,但是当第二次调用保存更改时,WCF服务不再具有原始上下文,因此不会保存任何更改(因此,之前的调用会自动回滚进行更改) .

我在我的客户端围绕两个操作使用Transaction范围,并在完成后执行Complete().我的WCF服务具有使用的OperationContract [TransactionFlow(TransactionFlowOption.Mandatory)]和那些方法实现使用[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)].最后,我的web配置配置了一个wsHttpBinding,其transactionFlow属性设置为True.

我没有运气.无论我尝试什么,当我尝试点击服务进行后续保存时,EF上下文已经更新.

oracle wcf entity-framework transactions

5
推荐指数
1
解决办法
1344
查看次数

wcf数据合同授权

如何[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]在类上使用属性?

我正在寻找一些限制访问我的对象的方法,即如果在服务方法中访问某个对象,并且如果用户有权访问服务方法但没有权限访问该对象,则应抛出异常

authentication wcf authorization

4
推荐指数
1
解决办法
3102
查看次数

EF 4.1 RC:奇怪的级联删除

我不得不承认,EF 4.1 RC Codefirst,DataAnnotations和FluentAPI的功能对我来说仍然是压倒性的.有时我真的不知道我在做什么;-)请看下面的POCO:

public class Country
{
    [Key]
    public Guid ID { get; set; }

    [Required]
    public virtual Currency Currency { get; set; }
}

public class Currency
{
    [Key]
    public Guid ID { get; set; }

    public virtual ICollection<Country> Countries { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

总体思路:每个国家都需要有货币.但是根本不需要将货币分配给一个国家.

如果让EF创建相应的数据库,则按照约定将关系设置为CASCADE DELETE.换句话说:如果删除货币,也会删除相应的国家/地区.但就我而言,这不是我想要的.

我在FluentAPI中想出了一些代码来禁用CASCADE DELETE:

modelBuilder.Entity<Country>()
            .HasRequired(cou => cou.Currency)
            .WithOptional()
            .WillCascadeOnDelete(false);
Run Code Online (Sandbox Code Playgroud)

我认为这意味着:每个国家都需要一种货币.此货币可能有零个,一个或多个国家/地区(可选).每当我删除一种货币时,相应的国家(如果有的话)都不会被级联删除.

令人惊讶的是,如果删除相应的货币,给定的方法仍会级联删除国家/地区.任何人都可以告诉我我想念的是什么吗?

fluent-interface cascading-deletes ef-code-first entity-framework-4.1

4
推荐指数
1
解决办法
3462
查看次数

实体框架4中的多对多查询

我的数据库中有很多关系.两个结束表是BlogPost和Item,中间的表是ItemBlogPost.我需要找回与特定项目相关的所有BlogPost.在SQL中,我会这样做:

SELECT BlogPost.*
FROM BlogPost
    JOIN ItemBlogPost ON BlogPost.ID = ItemBlogPost.BlogPost_ID
WHERE ItemBlogPost.Item_ID = @Item_ID
Run Code Online (Sandbox Code Playgroud)

在C#中我有类似的东西:

IQueryable<BlogPost> itemBlogPosts = from b in connection.BlogPosts
                                     where b.Items == item.ID 
                                     orderby b.Content.CreateDate descending
                                     select b;
Run Code Online (Sandbox Code Playgroud)

但是,标记为b.Items的行没有给出Item属性的列表,并且没有b.ItemBlogPost来查看中间表.我也尝试过,b.Items.Contains(item)但也失败了.如何在LINQ to EF4中完成这项工作?

c# linq-to-entities entity-framework entity-framework-4

4
推荐指数
1
解决办法
6744
查看次数

数据库"master"中的CREATE DATABASE权限被拒绝.MVC EF 4.1 Codefirst入门

我查了这里和互联网没有答案.我如何让它工作?我正在使用discountasp.net SQL,所以它是否是一个让它工作的设置?

sql ef-code-first entity-framework-4.1

4
推荐指数
1
解决办法
1万
查看次数

实体框架4.1代码优先 - 应初始化许多关系ICollections

在Entity Framework 4.1中创建POCO时,是否应该对类进行编码以初始化Many关系,或者是否有某些理由允许Entity Framework控制这些属性?

public class Portfolio
{
    private ICollection<Visit> _visits;

    public virtual ICollection<Visit> Visits
    {
        get
        {
            if (_visits == null)
            {
                _visits = new List<Visit>();
            }
            return _visits;
        }
        set
        {
            _visits = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

public class Portfolio 
{
    public virtual ICollection<Visit> Visits
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

还有更好的模式吗?

c# ef-code-first entity-framework-4.1

4
推荐指数
1
解决办法
765
查看次数

ef4导致Web服务中的循环引用

我有一个Reason对象:

public class Reason
{
    public virtual long Id { get; set; }
    public virtual string Name { get; set; }
    public virtual Company Company {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我使用实体框架4,公司是公司的导航属性.
我还使用webservices将数据返回给客户端.
我有web方法返回原因:

  [WebMethod]
    public Reason[] GetCallReasons()
    {
        IReasonRepository rep =
            ObjectFactory.GetInstance<IReasonRepository>();
        return rep.GetReasonsList().ToArray();
    }
Run Code Online (Sandbox Code Playgroud)

由于ef4,我在执行web方法时遇到以下异常:

A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.Reason_24A0E4BBE02EE6BC2CF30BB56CFCB670C7D9D96D03D40AF4D174B89C9D3C5537'
Run Code Online (Sandbox Code Playgroud)

问题是因为ef4添加了无法序列化的属性: rep.GetReasonsList()上的监视面板图像.ToArray()

为了解决这个问题并消除错误,我可以通过不使虚拟或删除导航属性来禁用导航属性.但我知道它并想要使用延迟加载功能.

我也可以为Reason编写特定的序列化器,但是我在我的web服务中使用了许多类,并为所有这些编写序列化器是很多工作.

我怎样才能解决这个异常?

.net c# serialization entity-framework web-services

4
推荐指数
2
解决办法
5355
查看次数

实体框架查找方法无法正常工作

我有像这样的课程,学生和老师

public class Course
    {
        [Key, DatabaseGenerated(DatabaseGenerationOption.Identity)]
        public Guid CourseId { set; get; }
        public ICollection<Student> Students { set; get; }
        public Teacher Teacher { get; set; }      

    }



public class Student
    {
        [Key, DatabaseGenerated(DatabaseGenerationOption.Identity)]
        public Guid StudentId { set; get; } 
        public ICollection<Course> Courses { set; get; }
    }




public class Teacher
    {
        [Key, DatabaseGenerated(DatabaseGenerationOption.Identity)]
        public Guid TeacherId { get; set; }
        public ICollection<Course> Courses { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我试图按主键获取课程如下

Course c = _unitOfWork.DbContext.Set<Course>().Find(keyValue);
Run Code Online (Sandbox Code Playgroud)

我从数据库中获取课程对象,但课程的学生和教师属性为空

我错过了什么?谢谢

linq-to-entities code-first entity-framework-4.1

4
推荐指数
1
解决办法
4293
查看次数

Linq to Entities:添加一个没有保存更改的对象

我们假设我有以下代码:

TEModule teModule = Context.TEModules.Where(module => module.EnumValue.Equals(text.ModuleName)).FirstOrDefault();
if (teModule == null)
{
     teModule = new TEModule();
     teModule.EnumValue = text.ModuleName;
     Context.TEModules.AddObject(teModule);
     //Context.SaveChanges();
     TEModule aux = Context.TEModules.Where(module => module.EnumValue.Equals(teModule.ModuleName)).FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我保持" SaveChanges "注释,那么在下一个查询中,aux对象始终为null,因为Context.TEModules为空,即使我调用" AddObject "方法也是如此.但是,如果我在AddObject之后调用SaveChanges,那么在下一个查询中,aux对象不为null.问题是我不想经常调用SaveChanges,因为这不是我添加对象的唯一代码片段,如果我这样做,性能会下降.

所以问题是:我是否必须在每次AddObject调用后调用SaveChanges,如果以后我需要知道对象是否已经存在?

linq-to-entities entity-framework add savechanges

4
推荐指数
1
解决办法
1862
查看次数